词条 | O_ACCMODE |
释义 | O_ACCMODE<0003>:读写文件操作时,用于取出flag的低2位 O_RDONLY<00>:只读打开 O_WRONLY<01>:只写打开 O_RDWR<02>:读写打开 可以很好的理解下面的程序: 1#include <sys/types.h> 2 #include <fcntl.h> 3 #include "ourhdr.h" 4 5 int 6 main(int argc, char *argv[]) 7 { 8 int accmode, val; 9 if(argc !=2) 10 err_quit("usage: a.out<descriptor#>"); 11 12 if((val=fcntl(atoi(argv[1]),F_GETFL, 0))<0) 13 err_sys("fcntl error for fd %d", atoi(argv[1])); 14 15 accmode=val & O_ACCMODE; 16 if (accmode==O_RDONLY) printf("read only"); 17 else if (accmode==O_WRONLY) printf("write only"); 18 else if (accmode==O_RDWR) printf("read write"); 19 else err_dump("unknown access mode"); 20 21 if(val & O_APPEND) printf(", append"); 22 if(val & O_NONBLOCK) printf(", nonblocking"); 23 #if !defined(_POSIX_SOURCE) && defined(O_SYNC) if(val & O_SYNC) printf(", synchronous writes"); 25 #endif 26 putchar('\'); 27 exit(0); 28 } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。