O_ACCMODE

O_ACCMODE是計算機語言。

基本介紹

  • 外文名:O_ACCMODE
  • O_RDONLY
簡介,解釋,

簡介

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('\n');
27 exit(0);
28 }
以上代碼選自《Unix高級環境編程》

相關詞條

熱門詞條

聯絡我們