看到书上有这句话(不懂):
F_GETFL 对应于filedes 的文件状态标志作为函数值返回。在说明 open函数时,已说明了文件状态标志 不幸的是,三个存取方式标志 (O_RDONLY,O_WRONLY,以及O_RDWR)并不各占1位。(正如前述,这三种标志的值各是 0、1和2,由于历史原因。这三种值互斥 — 一个文件只能有这三种值之一。 )因此首先必须用屏蔽字 O_ACCMODE相与 取得存取方式位,然后将结果与这三种值相比较。
fcntl(fd,F_GETFL,0)操作返回的结果是什么???
代码测试:返回不懂
/**
fcntl——manipulate(/məˈnɪpjʊleɪt;) file descriptor
**/
#include
#include
#include
#include
#include
int main(){
int fd;
int power;
if((fd = open("/home/hq/example/mydocs/linux",O_RDONLY | O_CREAT)) == -1){
printf("open failed!\n");
return 0;
}
//得到进程文件的描述符标志
if((power = fcntl(fd,F_GETFL,0)) ==-1){
printf("fcntl failed!\n");
return 0;
}
printf("%d--\n",power);
return 0;
}