ph.c
来自「哲学家就餐问题的两种算法实现」· C语言 代码 · 共 44 行
C
44 行
#include "head.h"
#include <sys/types.h>
#include <unistd.h>
main()
{
int f1, f2, f3, f4;
int i;
pid_t pid, pidset[5];
pipe(pidset);
if( (pid = fork() ) < 0)
err_sys("fork error");
else if(pid > 0){
for(i=0;i<4;i++)
if(pid > 0){
pidset[i] = pid;
printf("stored pidset[%d]=%d\n",i,pidset[i]);
if( (pid = fork() ) < 0)
err_sys("fork error");
printf("create complete, pid=%d\n",pid);
}
if(pid > 0){
pidset[i] = pid;
write(pidset[0],
sleep(20);
}
}
else{
sleep(2);
for(i=0;i<5;i++){
printf("getpid=%d pidset[%d]=%d\n",getpid(),i,pidset[i]);
if(getpid() == pidset[i])
printf("this is ph%d\n", i+1);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?