日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux下mkdir头文件_Linux中判断一个目录是否存在,如果不存在就创建这个目录

發(fā)布時(shí)間:2023/12/2 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下mkdir头文件_Linux中判断一个目录是否存在,如果不存在就创建这个目录 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在操作文件目錄時(shí)我們常常會(huì)考慮如下的功能:

1、判斷文件是否存在,并判斷文件是否可寫/目錄是否存在

Linux下:

#include

int access(const char* pathname, int mode);

參數(shù)介紹:

返回值:成功0,失敗-1

pathname 是文件的路徑名+文件名

mode:指定access的作用,取值如下:

F_OK 值為0,判斷文件是否存在

X_OK 值為1,判斷對(duì)文件是可執(zhí)行權(quán)限

W_OK 值為2,判斷對(duì)文件是否有寫權(quán)限

R_OK 值為4,判斷對(duì)文件是否有讀權(quán)限

注:后三種可以使用或“|”的方式,一起使用,如W_OK|R_OK

C++(標(biāo)準(zhǔn)C++中):

頭文件:

函數(shù)原型:int _access(const char *pathname, int mode);

參數(shù):pathname 為文件路徑或目錄路徑 mode 為訪問(wèn)權(quán)限(在不同系統(tǒng)中可能用不能的宏定義重新定義)

返回值:如果文件具有指定的訪問(wèn)權(quán)限,則函數(shù)返回0;如果文件不存在或者不能訪問(wèn)指定的權(quán)限,則返回-1.

備注:當(dāng)pathname為文件時(shí),_access函數(shù)判斷文件是否存在,并判斷文件是否可以用mode值指定的模式進(jìn)行訪問(wèn)。當(dāng)pathname為目錄時(shí),_access只判斷指定目錄是否存在,在Windows NT和Windows 2000中,所有的目錄都只有讀寫權(quán)限。

mode的值和含義如下所示:

00——只檢查文件是否存在

02——寫權(quán)限

04——讀權(quán)限

06——讀寫權(quán)限

注意:用?? int?? access(const?? char?? *pathname,?? int?? mode);?? 判斷有沒(méi)有此文件或目錄 --它區(qū)別不出這是文件還是目錄

用?? int?? stat(const?? char?? *file_name,?? struct?? stat?? *buf); 判斷該文件或目錄是否否存在 ;得到st_mode,然后判斷是不是目錄文件。

stat()系統(tǒng)調(diào)用看是否成功,不成功就不存在,成功判斷返回的st_mode是否是一個(gè)文件夾。

2、判斷目錄是否存在

可以使用opendir來(lái)判斷,這是比較簡(jiǎn)單的辦法。

#include

#include

DIR *opendir(const char *name);

3、Linux下mkdir函數(shù),創(chuàng)建目錄

頭文件庫(kù):

#include

#include

函數(shù)原型:

int mkdir(const char *pathname, mode_t mode);

函數(shù)說(shuō)明:

mkdir()函數(shù)以mode方式創(chuàng)建一個(gè)以參數(shù)pathname命名的目錄,mode定義新創(chuàng)建目錄的權(quán)限。

返回值:

若目錄創(chuàng)建成功,則返回0;否則返回-1,并將錯(cuò)誤記錄到全局變量errno中。

mode的值如下表:

S_IRWXU00700權(quán)限,代表該文件所有者擁有讀,寫和執(zhí)行操作的權(quán)限

S_IRUSR(S_IREAD)00400權(quán)限,代表該文件所有者擁有可讀的權(quán)限

S_IWUSR(S_IWRITE)00200權(quán)限,代表該文件所有者擁有可寫的權(quán)限

S_IXUSR(S_IEXEC)00100權(quán)限,代表該文件所有者擁有執(zhí)行的權(quán)限

S_IRWXG00070權(quán)限,代表該文件用戶組擁有讀,寫和執(zhí)行操作的權(quán)限

S_IRGRP00040權(quán)限,代表該文件用戶組擁有可讀的權(quán)限

S_IWGRP00020權(quán)限,代表該文件用戶組擁有可寫的權(quán)限

S_IXGRP00010權(quán)限,代表該文件用戶組擁有執(zhí)行的權(quán)限

S_IRWXO00007權(quán)限,代表其他用戶擁有讀,寫和執(zhí)行操作的權(quán)限

S_IROTH00004權(quán)限,代表其他用戶擁有可讀的權(quán)限

S_IWOTH00002權(quán)限,代表其他用戶擁有可寫的權(quán)限

S_IXOTH00001權(quán)限,代表其他用戶擁有執(zhí)行的權(quán)限

int32_t OpendirAndMkdir(const char * pathname)

{

int ret = 0;

DIR * mydir = NULL;

if ((mydir = opendir(pathname)) == NULL)

{

ret = mkdir(pathname, 0755);

if (ret != 0) return -1;

printf("%s created sucess!/n", pathname);

}

else

{

printf("%s exist!/n", pathname);

}

return ret;

}

本文地址:https://blog.csdn.net/Swallow_he/article/details/109639047

希望與廣大網(wǎng)友互動(dòng)??

點(diǎn)此進(jìn)行留言吧!

總結(jié)

以上是生活随笔為你收集整理的linux下mkdir头文件_Linux中判断一个目录是否存在,如果不存在就创建这个目录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。