当前位置: 技术问答>linux和unix
lockf函数的疑问?
来源: 互联网 发布时间:2016-06-03
本文导语: #include #include main() { int p1,p2,fd[2]; char szRecv[50]="unknown message"; pipe(fd); p1=fork(); if(p1==0) { lockf(fd[1],1,0); /*加锁锁定写入端,并没有解锁阿,为什么p2还能写入数据呢?*/ write(fd[1],"p1 is sending message!",50); exit(0); } else { w...
#include
#include
main()
{
int p1,p2,fd[2];
char szRecv[50]="unknown message";
pipe(fd);
p1=fork();
if(p1==0)
{
lockf(fd[1],1,0); /*加锁锁定写入端,并没有解锁阿,为什么p2还能写入数据呢?*/
write(fd[1],"p1 is sending message!",50);
exit(0);
}
else
{
wait(0);
p2=fork();
if(p2==0)
{
write(fd[1],"p2 is sending message!",50);
exit(0);
}
else
{
wait(0);
read(fd[0],szRecv,50);
puts(szRecv);
read(fd[0],szRecv,50);
puts(szRecv);
exit(0);
}
}
}
运行结果图片附件里.
|
晕,另一个write没有lockf啊?