回覆列表
  • 1 # 使用者7862610599243

    這個需要對檔案加鎖才能實現,可以用fcntl函式實現

    int lock(const char * filepath )

    {

    int fd = 0;

    struct flock flock;

    memset( &flock, 0, sizeof(flock) );

    fd = open( filepath, O_RDWR,S_IRUSR|S_IWUSR );

    if ( fd < 0 )

    {

    printf("open error!\n");

    return ( -1 );

    }

    flock.l_type = F_WRLCK;

    flock.l_whence = SEEK_SET;

    flock.l_start = 100000;

    flock.l_len = 0;

    if ( fcntl( fd, F_SETLK, &flock ) ) //加鎖,如果失敗則等待10秒

    {

    printf("cannot set lock\n");

    printf("the process will retry after 10 seconds\n");

    sleep(10); //不同版本的sleep單位可能不一樣,有的是秒有的是毫秒,你自己看著改

    if ( fcntl( fd, F_SETLK, &flock ) ) //加鎖,如果失敗則退出

    return( -1 );

    }

    return( 0 );

    }

  • 中秋節和大豐收的關聯?
  • 夢幻西遊2175五開日賺兩百的方法?