zoukankan      html  css  js  c++  java
  • lockf函数的使用

    #include<stdio.h>
    #include<unistd.h>
    void main()
    {int p1,p2,i;
     while((p1=fork())==-1);//创建子进程p1,这个是一个技巧,直到创建子进程成功为止
      if(p1==0)
       {
        lockf(1,1,0);//加锁第一个参数为stdout(标准输出设备描述符)
         //printf("child  %4d %4d
    ",getppid(),getpid(),p1);
         for(i=0;i<5;i++)
           printf("daughter%d
    ",i);
         lockf(1,0,0); }
      else{
        while((p2=fork())==-1);//创建子进程p2
         if(p2==0){
            lockf(1,1,0);//加锁第一个参数为stdout(标准输出设备描述符)
            for(i=0;i<5;i++)
             printf("son%d
    ",i);
            lockf(1,0,0); //解锁
            }
          else
          {lockf(1,1,0);//加锁
            for(i=0;i<5;i++)
             printf("parent%d
    ",i);
            lockf(1,0,0); //解锁
            
          }
        }
         
    }
    /*本实验所涉及的的系统调用lockf(files,function,size),
    用作锁定文件的某些段或者整个文件。本函数的头文件为include<unistd.h>
    其中file为文件描述符,function是锁定和解锁:1表示锁定,0表示解锁;
    size是锁定或者解锁的字节数,为0,表示从文件的当前位置到文件尾。*/
  • 相关阅读:
    图像修补
    图像的矩
    使用多边形将轮廓包围
    寻找物体的凸包
    查找并绘制轮廓
    重映射
    霍夫变换
    边缘检测
    第二周神经网络基础
    第一周:深度学习引言(Introduction to Deep Learning)
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4110808.html
Copyright © 2011-2022 走看看