我试图了解这行代码的含义:
flags = fcntl(-1,F_GETFL,0);
最佳答案
用fcntl()
标志调用 F_GETFL
的通常原因是修改标志并用fcntl()
和F_SETFL
设置它们;用fcntl()
调用F_GETFL
的另一个原因是找出文件描述符的特征。您可以通过(相当仔细地)阅读有关 <fcntl.h>
的信息来找到有关可以操作哪些标志的信息。标志包括:
加号(POSIX 2008)O_ACCMODE,如果我正确地阅读了引用的页面,则可以将其用于区分
O_RDONLY
,O_RDWR
和O_WRONLY
。但是,以绝对无效的文件描述符(例如
fcntl()
)调用-1
毫无意义。所发生的一切是该函数返回指示失败的-1
并将errno
设置为EBADF
(错误的文件描述符)。关于c - 以文件描述符为-1和cmd为F_GETFL来调用fcntl()的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16557188/