F_GETFL 我的理解是file get flag
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int flag;
int fd = open("2.txt",O_RDWR);
if(-1 == fd)
perror("open");
flag = fcntl(fd,F_GETFL);
if(-1 == flag)
perror("fcntl");
int accmode;
accmode = flag & O_ACCMODE;
if(accmode == O_RDONLY)
printf("readonly\n");
else if(accmode == O_WRONLY)
printf("write only\n");
else if(accmode == O_RDWR)
printf("read write\n");
return 0;
}
判定文件的访问模式需要掩码ACCMODE&flag(fcntl返回值)
如果采用的是打开大文件的技术,F_GETFL总是包含O_LARGEFILE标志