进程互斥实验
头文件已包含该函数,但是编译时仍然报错
之前也是这么写的但是没有报错
代码
#include<iostream>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{
pid_t pid1=-1;
pid1=fork();
if(pid1>0)
{
pid_t pid2=fork();
if(pid2<0)
{
cout<<"perror"<<endl;
}
if(pid2>0)
{
lockf(1,1,1);
int son ,father;
son=getpid();
father=getppid();
cout<<"father pid:"<<son<<""<<"其父进程 pid:"<<father<<endl;
for(int i=1;i<=10;i++)
{
cout<<"father"<<i<<endl;
sleep(3);
}
lockf(1,0,1);
}
if(pid2==0)
{
lockf(1,1,1);
int son ,father;
son=getpid();
father=getppid();
cout<<"son pid:"<<son<<" "<<"其父进程 pid:"<<father<<endl;
for(int i=1;i<=10;i++)
{
cout<<"son "<<i<<endl;
sleep(4);
}
lockf(1,0,1);
}
}
if(pid1==0)
{
lockf(1,1,1);
int son ,father;
son=getpid();
father=getppid();
cout<<"daughter pid:"<<son<<""<<"其父进程 pid:"<<father<<endl;
for(int i=1;i<=10;i++)
{
cout<<"daughter "<<i<<endl;
sleep(5);
}
lockf(1,0,1);
}
}