open
的標誌並不是每
1位對應乙個標誌,對於讀寫的標誌,在
open
時必須指定乙個,其巨集定義如下,檢查讀寫標誌時,不能簡單當使用異或,將標誌與
o_accmode
進行與操作,獲取標誌的低兩位來確定讀寫標誌。
/usr/include/bits/fcntl.h
#define o_accmode0003
#define o_rdonly00
#define o_wronly01
#define o_rdwr02
檢查示例:
if((open_flag & o_accmode) == o_rdonly)
而其他的標誌,每個位對應乙個標誌,可直接與相應標誌做與運算檢查標誌是否被設定。
#define o_creat
0100 /* not fcntl */
#define o_excl
0200 /* not fcntl */
#define o_noctty0400 /* not fcntl */
#define o_trunc
01000 /* not fcntl */
02000
#define o_nonblock
04000
#define o_ndelay
o_nonblock
#define o_sync
010000
#define o_fsync
o_sync
#define o_async
020000
#ifdef __use_gnu
#define o_direct040000 /* direct disk access.*/
#define o_directory0200000 /* must be a directory.*/
#define o_nofollow0400000 /* do not follow links.*/
#define o_noatime01000000 /* do not set atime.*/
#define o_cloexec02000000 /* set close_on_exec.*/
#endif
檢查示例:
if(open_flag & o_excl)
當指定o_creat
標記時,需要給定
open
的第三個引數,即訪問模式,可通過三個八進位制數指定,也可通過一些巨集指定。
#if defined __use_misc && defined __use_bsd
# define s_ireads_irusr
# define s_iwrites_iwusr
# define s_iexecs_ixusr
#endif
#define s_irgrp (s_irusr >> 3)/* read by group.*/
#define s_iwgrp (s_iwusr >> 3)/* write by group.*/
#define s_ixgrp (s_ixusr >> 3)/* execute by group.*/
/* read, write, and execute by group.*/
#define s_irwxg (s_irwxu >> 3)
#define s_iroth (s_irgrp >> 3)/* read by others.*/
#define s_iwoth (s_iwgrp >> 3)/* write by others.*/
#define s_ixoth (s_ixgrp >> 3)/* execute by others.*/
/* read, write, and execute by others.*/
#define s_irwxo (s_irwxg >> 3)
附:從某個目錄查詢包含「某一內容」的檔案小技巧
find/usr/include/unistd.h| xargs grep 「o_rdonly」
在/usr/include/unistd.h
查詢o_rdonly
find/usr/include/| xargs grep 「o_rdonly
在/usr/include/
目錄中查詢
o_rdonly
open檔案操作
基本方式 r 唯讀不寫 w 只寫模式,檔案不存在則建立,檔案存在則清空 x 只寫模式,不可讀,檔案不存在可以建立,檔案存在直接報錯。a 追加 不可讀,不存在則建立,存在可在尾部追加 假如 檔名是 db 內容 123456f open db r r 唯讀 date f.read read表示把檔案內容...
視窗函式open
功能 開啟視窗。該函式有兩種語法格式,語法一為開啟程式設計時已知資料型別的視窗物件,語法二為開啟程式執行後才能確定資料型別的視窗物件。語法一 open windowvar 語法二 open windowvar,windowtype eg open w about,w main 語法一 ps.wind...
open檔案操作
open 做檔案操作的就是他 1.開啟檔案 f open db r 唯讀 f open db w 只寫 它清空檔案再寫 f open db x python3新加的,這個如果檔案存在報錯,不存在可以讓你建立並寫內容。f open db a a是追加 號表示同時讀寫乙個檔案 r 可讀寫 w 可讀寫 x...