linux
文章平均质量分 53
雨艺工作室
专业编程二十年
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
神奇的linux:父子进程管道通讯
poll函数用法可以man一下。这里提供一个可以运行的示例。程序流程:父进程启动并创建子进程子进程通过管道发送数据给父进程父进程同时监听管道数据和shell输入,阻塞500毫秒发现没有数据就打印一个"Testing...."父进程等待子进程结束子进程结束,父进程结束Ubuntu10.04:poll.cpp源代码:#include #include #in原创 2013-12-11 23:16:21 · 1392 阅读 · 0 评论 -
神奇的sh:管道操作|原理 ,实现一个支持管道操作的grep
C程序的输入有参数和标准输入,原创 2014-09-21 17:43:41 · 2247 阅读 · 0 评论 -
神奇的linux:脚本
kill掉名字为app_name的程序:ps -ef | grep app_name| kill `awk '{print $2}'`监控程序并自动重启:RootDir=`pwd`check_if_running(){ BinName=$1 for pid in `ps aux | grep -v grep | grep $BinName | awk '{prin原创 2014-12-09 13:52:31 · 709 阅读 · 0 评论 -
神奇的linux:程序core了。。。
linux下面写程序,遇到core是很正常的,下面记录下平时遇到的core,及其应对措施。原创 2014-08-26 14:22:36 · 1036 阅读 · 0 评论 -
神奇的linux:同时监听多个IO
select模型在win32API编程中也很常见,而且和linux中的select函数遵循同样的berkeley标准,所以函数原型相同。select函数原型:Ubuntu:int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);原创 2013-12-11 22:47:57 · 1122 阅读 · 0 评论 -
神奇的sh:如何输出所有参数?
[ "$a" == "$b" ] && [ "$a" == "$c" ] && { echo "a==b and a==c";} || [ "$a" != "$b" ] || [ "$a" != "$c" ] || { echo "a!=b and a!=c";} || { echo "other";}原创 2014-09-21 16:59:18 · 3792 阅读 · 0 评论 -
神奇的linux:多线程的实现
所谓的多线程就是多个函数同时执行。一般将线程表述为一个api加一个函数。线程函数有特定的格式要求,以便系统自动调用。windows进程包含多个线程,进程是分配资源(包括CPU)的最小单位,而线程是调度的最小单位。linux中的进程和线程关系尚未完全弄懂,不过创建多线程程序和windows一样简单。下面是一个多线程实例,程序流程是这样的:进程启动,创建一个线程线程和主原创 2013-12-12 11:17:31 · 1078 阅读 · 0 评论 -
神奇的linux:文件互斥访问
多进程写文件操作一般要求互斥,这需要使用flock函数来获得文件锁。下面是一个使用该函数的例子。程序流程:尝试获得文件互斥锁如果获得成功,等待10秒,此时可以运行当前程序的另一个实例,观察是否可以再次获得文件锁如果获取不成功,则直接退出。这里需要指定LOCK_NB参数,否则flock会阻塞进程直到得到了文件锁lockfile.cpp代码:#include #inc原创 2013-12-12 10:40:35 · 3577 阅读 · 0 评论 -
神奇的sh:实现svn一次性增加所有新增文件
svn st | awk '{if($1=="?"){cmd="svn add "$2; system(cmd); }}'原创 2014-09-17 21:20:56 · 740 阅读 · 0 评论 -
unix套接字
下面的代码创建了一个server和一个client。client发送两个请求:echo和exit。server收到exit立即退出,其他请求则返回一个固定的字符串作为回馈。#include #include #include #include #include #include #include #include #include #include #include原创 2015-04-14 15:52:53 · 660 阅读 · 0 评论
分享