-
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()
最新推荐文章于 2023-09-05 20:14:29 发布