管道,一种古老的进程间通信形式。一个管道由一个进程创建,然后该进程调用fork,此后父、子进程就可以用管道通信了。
函数原型:
#include
int pipe(int filedes[2]); // 成功返回0,出错返回-1
参数filedes返回两个文件描述符。filedes[0]用来输入,filedes[1]用来输出。注意,经过实验,这里的两个描述符并不对应标...
分类:
系统相关 时间:
2014-05-15 19:39:53
阅读次数:
506
表面上看,在windows中。如果是a进程创建了b进程,那么a进程就是b进程的父进程,反之,如果是b创建了a,那么b进程就是a的父进程,这是在windows出现以来一直是程序猿们都证实的,但是在在win Vista后面有了一个新安全消息机制,UAC(user account control),这里科普下UAC的功能,其实UAC就是大家常见的安装软件或者启动程序的时候的出现的全屏变暗的一个提示框,这...
分类:
其他好文 时间:
2014-05-13 00:20:04
阅读次数:
608
windows中有时候需要使用多进程进行编程,有的时候是因为一个复杂的过程需要开启一个新的进程进行处理,又或者仅仅是需要调用一个已经存在的exe等等,创建多个进程时,进程之间的通信是一个重要的问题,下面讨论一下如何使用匿名管道,在父子进程中进行通信。
使用情况:父进程使用createProce...
分类:
Windows程序 时间:
2014-05-09 09:40:51
阅读次数:
2313
pid_t pid = fork();1.根据fork的返回值区分父子进程:fork 函数返回两次,
>0 表示父进程,返回值为子进程ID; =0 表示子进程; 。所以,在fork()之后,我们一般执行:waitpid(pid,NUL,0); 参数1:
pid表示到等待的子进程ID 参数2: N.....
分类:
其他好文 时间:
2014-05-07 10:25:35
阅读次数:
276
原文地址:http://www.cnblogs.com/mickole/p/3192210.html
一,什么是管道 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
只能用于父子进程或者兄弟进程之间(具...
分类:
系统相关 时间:
2014-05-04 19:06:23
阅读次数:
517
1)父进程先于子进程终止:此种情况就是我们前面所用的孤儿进程。当父进程先退出时,系统会让init进程接管子进程
。2)子进程先于父进程终止,而父进程又没有调用wait或waitpid函数此种情况子进程进入僵死状态,并且会一直保持下去直到系统重启。子进程处于僵死状态时,内核只保存进程的一些必要信息以备...
分类:
其他好文 时间:
2014-05-01 19:14:22
阅读次数:
283
说起共享内存,一般来说会让人想起下面一些方法:1、多线程。线程之间的内存都是共享的。更确切的说,属于同一进程的线程使用的是同一个地址空间,而不是在不同地址空间之间进行内存共享;2、父子进程间的内存共享。父进程以MAP_SHARED|MAP_ANONYMOUS选项mmap一块匿名内存,fork之后,其...
分类:
系统相关 时间:
2014-04-28 12:30:07
阅读次数:
720