zoukankan      html  css  js  c++  java
  • lockf

    lockf( fd, mode, size );

    mode 为 1 时表示加锁,为 0 时表示解锁。

    #include<stdio.h>
    #include<unistd.h>
    #include<sys/types.h>
    #include<sys/wait.h>
    #include<stdlib.h>
    
    int main()
    {
        pid_t pid;
        int retval;
        char buf[6] = "hello";
        if( (pid = fork() )< 0 )
        {
            printf("fork error
    ");
            exit(-1);
        }
        else if( pid == 0 )
        {
            while(1)
            {
                if( lockf(1,1,0) < 0 )
                {
                    printf("lockf on error
    ");
                    exit(-1);
                }
                sleep(1);
                printf("this is in child!
    ");
                sleep(1);
                printf("this is in child!
    ");
    
                if( lockf(1,0,0) <0 )
                {
                    printf("lockf off error
    ");
                    exit(-1);                    
                }
                sleep(1);
            }
            printf("this is child end
    ");
            exit(-1);
        }
        //wait(&retval);
        while(1)
        {
            if( lockf(1,1,0) < 0 )
            {
                printf("lockf on error
    ");
                exit(-1);
            }
            sleep(1);
            printf("this is in parent!
    ");
            sleep(1);
            printf("this is in parent!
    ");
    
            if( lockf(1,0,0) <0 )
            {
                printf("lockf off error
    ");
                exit(-1);                    
            }
            sleep(1);
        }
        printf("this is parent process end
    ");
        return 0;
    }
  • 相关阅读:
    Python记录12:迭代器+生成器+生成式
    Python记录11:叠加多个装饰器+有参装饰器
    Python记录10:模块
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
  • 原文地址:https://www.cnblogs.com/little-snake/p/4922521.html
Copyright © 2011-2022 走看看