zoukankan      html  css  js  c++  java
  • fcntl函数学习

    转自:https://www.cnblogs.com/xuyh/p/3273082.html

    1.功能

    功能描述:根据文件描述词来操作文件的特性

    int fcntl(int fd, int cmd);
    
    int fcntl(int fd, int cmd, long arg);         
    
    int fcntl(int fd, int cmd, struct flock *lock);

    fcntl函数有5种功能:

         1.复制一个现有的描述符(cmd=F_DUPFD).

             2.获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD).

                3.获得/设置文件状态标记(cmd=F_GETFL或F_SETFL).

                4.获得/设置异步I/O所有权(cmd=F_GETOWN或F_SETOWN).

                5.获得/设置记录锁(cmd=F_GETLK,F_SETLK或F_SETLKW).

    常见用法:

    //对文件描述符设置非阻塞
    int setnonblocking( int fd )
    {
        int old_option = fcntl( fd, F_GETFL );
        int new_option = old_option | O_NONBLOCK;
        fcntl( fd, F_SETFL, new_option );
        return old_option;
    }

    cmd为F_SETFL,设置文件为非阻塞的。

  • 相关阅读:
    学习进度笔记
    学习进度笔记
    学习进度笔记
    《一级架构师》阅读笔记
    学习进度笔记
    学习进度笔记
    学习进度笔记
    mysql
    error: 'wblog/' does not have a commit checked out
    有用的网页
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/15000334.html
Copyright © 2011-2022 走看看