在專案中可能會遇見查詢某個路徑或者檔案是否存在的情況,如果不存在就新建。在看**的時候發現有人這樣實現:
dir = opendir(g_logdir);
if ( dir == nullp )
else
對應檔案的話會這樣寫
dir = fopen(g_logdir);
if ( dir == nullp )
else
目的很簡單,就是查詢目錄或者檔案是否存在,不存在就新建。這樣確實可行,但是很費解,做了那麼多事情就為了新建個路徑或者檔案,有是 open 又是 close的,要查詢有查詢的函式啊,何必呢!
int access(const char *filename, int mode);
#include
#include
#include
#include
void main()
else
}
這裡用access函式判斷路徑是否存在,不存在就建立,用到了mkdir函式,其引數有兩個,第乙個寫路徑字串,第二個寫建立的路徑的許可權,這裡不要寫成o_rdonly 、 o_wronly 、 o_rdwr 、 o_creat,也不要寫成775三位數,不然許可權會出錯!
#define o_accmode 0003
#define o_rdonly 00
#define o_wronly 01
#define o_rdwr 02
#define o_creat 0100 /* not fcntl */
#define o_excl 0200 /* not fcntl */
#define o_noctty 0400 /* not fcntl */
#define o_trunc 01000 /* not fcntl */
#define o_nonblock 04000
#define o_ndelay o_nonblock
#define o_sync 010000
#define o_fsync o_sync
#define o_async 020000
Shell判斷檔案或目錄是否存在
e filename 如果 filename存在,則為真 d filename 如果 filename為目錄,則為真 f filename 如果 filename為常規檔案,則為真 l filename 如果 filename為符號鏈結,則為真 r filename 如果 filename可讀,則為...
php 判斷檔案或目錄是否存在
判斷檔案或目錄是否存在有自帶的函式 file exists 檔案是否存在 file check.txt if file exists file else is dir 目錄是否存在 dir c datacheck if is dir dir else 判斷檔案或目錄是否存在有自帶的函式 file e...
shell判斷檔案目錄或檔案是否存在
e 判斷物件是否存在 d 判斷物件是否存在,並且為目錄 f 判斷物件是否存在,並且為常規檔案 l 判斷物件是否存在,並且為符號鏈結 h 判斷物件是否存在,並且為軟鏈結 s 判斷物件是否存在,並且長度不為0 r 判斷物件是否存在,並且可讀 w判斷物件是否存在,並且可寫 x 判斷物件是否存在,並且可執行...