-
fcntl()必须针对一个打开的文件,才能进行其操作,它可以获取或修改文件的模式及状态标志;
-
获取文件的访问模式,
int flags;
flags = fcntl ( fd, F_GETFL ) ; -
但如果要获取的状态位是:O_RDONLY,O_WRONLY,O_RDWR,必须先通过和掩码O_ACCMODE进行"&"运算,如下:
accessMode = flags & O_ACCMODE;
if (accessMode == O_WRONLY || accessMode == O_RDWR) {
printf(“file is writable\n”);
} -
fcntl主要适用于不是由当前调用程序打开的,例程如下:
int flags;
flags = fcntl(fd, F_GETFL);
if (flags & O_ASYNC) {
printf(“open type#: O_ASYNC\n”);
}flags |= O_APPEND;
flags = fcntl(fd, F_GETFL);
if (flags & O_APPEND) {
printf(“open type#: O_APPEND\n”);
}
linux/unix系统编程手册——fcntl()
最新推荐文章于 2025-09-09 16:23:54 发布
本文深入解析了fcntl()函数的功能和使用方法,详细介绍了如何通过该函数获取和修改已打开文件的模式及状态标志,包括获取文件访问模式和检查特定状态位如O_WRONLY、O_RDWR、O_ASYNC和O_APPEND的操作示例。
2262

被折叠的 条评论
为什么被折叠?



