编写一个多线程的程序完成如下功能:
1)父进程创建两个子进程(分别为子进程1和子进程2),父进程在创建完子进程后沉睡一秒,后正常退出;2)子进程1获取自己的进程ID;3)子进程1通过进程通信方式“管道”向子...
1) 父进程创建两个子进程(分别为子进程1和子进程2),父进程在创建完子进程后沉睡一秒,后正常退出;
2) 子进程1获取自己的进程ID;
3) 子进程1通过进程通信方式“管道”向子进程2传输自己的进程ID;
4)子进程2在收到子进程1的进程ID后,将其输出到终端上。 展开
2) 子进程1获取自己的进程ID;
3) 子进程1通过进程通信方式“管道”向子进程2传输自己的进程ID;
4)子进程2在收到子进程1的进程ID后,将其输出到终端上。 展开
展开全部
看看是不是符合你的要求。
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
int pid1,pid2;
main( )
{
int fd[2];
char outpipe[100],inpipe[100];
pipe(fd); /*创建一个管道*/
while ((pid1=fork( ))==-1);
if(pid1==0)
{
while((pid2=fork( ))==-1);
if(pid2==0)
{
sleep(1);
exit(0);
}
else
{
wait(0); /*同步*/
read(fd[0],inpipe,50); /*从管道中读长为50字节的串*/
printf("%s\n",inpipe);
wait(0);
exit(0);
}
}
else
{
lockf(fd[1],1,0);
sprintf(outpipe,"%d", getpid());
/*把串放入数组outpipe中*/
write(fd[1],outpipe,50); /*向管道写长为50字节的串*/
lockf(fd[1],0,0);
exit(0);
}
}
追问
[root@bogon ~]# ./fork1
./fork1: line 5: int: command not found
./fork1: line 11: syntax error near unexpected token `fd'
./fork1: line 11: `pipe(fd); /*创建一个管道*/'
运行后出现这样的信息是什么意思
追答
这个是C语言的
不是shell
你可以
gcc fork1 -o fork
然后
./fork
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询