我试图了解这行代码的含义:

flags = fcntl(-1,F_GETFL,0);

最佳答案

fcntl()标志调用 F_GETFL 的通常原因是修改标志并用fcntl()F_SETFL设置它们;用fcntl()调用F_GETFL的另一个原因是找出文件描述符的特征。您可以通过(相当仔细地)阅读有关 <fcntl.h> 的信息来找到有关可以操作哪些标志的信息。标志包括:

  • O_APPEND-设置追加模式。
  • O_DSYNC —根据同步的I/O数据完整性完成写入。
  • O_NONBLOCK —非阻塞模式。
  • O_RSYNC —同步的读取I/O操作。
  • O_SYNC —根据同步的I/O文件完整性完成进行写入。

  • 加号(POSIX 2008)O_ACCMODE,如果我正确地阅读了引用的页面,则可以将其用于区分O_RDONLYO_RDWRO_WRONLY

    但是,以绝对无效的文件描述符(例如fcntl())调用-1毫无意义。所发生的一切是该函数返回指示失败的-1并将errno设置为EBADF(错误的文件描述符)。

    关于c - 以文件描述符为-1和cmd为F_GETFL来调用fcntl()的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16557188/

    10-16 11:44