⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ph.c

📁 哲学家就餐问题的两种算法实现
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -