当前位置: 技术问答>linux和unix
父进程获取子进程pid的问题(linux c程序)
来源: 互联网 发布时间:2017-05-08
本文导语: if(fork()==0) { .... if(fork()==0) {} } else { //父进程获取子进程的pid //我是想这样写 pid_t pid1=wait(0);//这是获取第一个子进程pid pid_t pid2=wait(0);//我本想这是第二个子进程pid,可是结果是-1,我想了下应该第二个子进程是第一...
if(fork()==0)
{
....
if(fork()==0)
{}
}
else
{
//父进程获取子进程的pid
//我是想这样写
pid_t pid1=wait(0);//这是获取第一个子进程pid
pid_t pid2=wait(0);//我本想这是第二个子进程pid,可是结果是-1,我想了下应该第二个子进程是第一个子进程的子进程,所以这样不行
//我的问题就是,父进程怎么样能你获得到第二个子进程的pid呢?
}
谢谢了
{
....
if(fork()==0)
{}
}
else
{
//父进程获取子进程的pid
//我是想这样写
pid_t pid1=wait(0);//这是获取第一个子进程pid
pid_t pid2=wait(0);//我本想这是第二个子进程pid,可是结果是-1,我想了下应该第二个子进程是第一个子进程的子进程,所以这样不行
//我的问题就是,父进程怎么样能你获得到第二个子进程的pid呢?
}
谢谢了
|
如果楼主是想要表达这个意思的话,那么就需要用到进程间通信,因为子子1与父进程并不具有直接关系。
我这里采用了共享内存的方式,程序如下:
#include
#include
#include
#include
#include
int main(void)
{
int shmid = 0;
int *shmbuf = NULL;
if((shmid = shmget(777, sizeof(int), 0666 | IPC_CREAT))