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

📄 pipe_lock.c

📁 Linux大学上机源码学习
💻 C
字号:
#include <limits.h>#include <signal.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include <sys/file.h>int p1,p2;main(){  int fd[2],r,k=0,n; char outp[100],inp[4096],outpx[100],c; pipe(fd); printf("x=%ld,%d\n",F_LOCK,F_ULOCK); sleep(5); while((p1=fork())==-1); if (p1==0)  {  close(fd[0]);  lockf(fd[1],F_LOCK,0);   k=1;   while(k<=3)     {sprintf(outpx,"c1:%d",k);     write(fd[1],outpx,strlen(outpx));     sleep(1);      k++;     }    write(fd[1],":end",4);     lockf(fd[1],F_ULOCK,0);   exit(0);  } else    {      while((p2=fork())==-1);     if(p2==0)       { k=1;        close(fd[0]);        lockf(fd[1],F_LOCK,0);         while(k<=2)          { sprintf(outpx,"c2:%d",k);            write(fd[1],outpx,strlen(outpx));               k++;          }        lockf(fd[1],F_ULOCK,0);        exit(0);        }           else        {wait(0);         wait(0);               n=read(fd[0],inp,4096);         printf("rectoatl=%d,recstring=%s",n,inp);	 }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -