open標誌解析

2022-05-02 22:00:17 字數 2179 閱讀 2671

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...