一、mkdir
說(shuō)明:創(chuàng)建目錄。
頭文件庫(kù):
#include <sys/stat.h>
#include <sys/types.h>
函數(shù)原型:
int mkdir(const char *pathname, mode_t mode);
mode方式:可多個(gè)權(quán)限相或,如0755表示S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
權(quán)限 | 說(shuō)明 |
---|---|
S_IRWXU | 00700權(quán)限,代表該文件所有者擁有讀,寫(xiě)和執(zhí)行操作的權(quán)限 |
S_IRUSR(S_IREAD) | 00400權(quán)限,代表該文件所有者擁有可讀的權(quán)限 |
S_IWUSR(S_IWRITE) | 00200權(quán)限,代表該文件所有者擁有可寫(xiě)的權(quán)限 |
S_IXUSR(S_IEXEC) | 00100權(quán)限,代表該文件所有者擁有執(zhí)行的權(quán)限 |
S_IRWXG | 00070權(quán)限,代表該文件用戶組擁有讀,寫(xiě)和執(zhí)行操作的權(quán)限 |
S_IRGRP | 00040權(quán)限,代表該文件用戶組擁有可讀的權(quán)限 |
S_IWGRP | 00020權(quán)限,代表該文件用戶組擁有可寫(xiě)的權(quán)限 |
S_IXGRP | 00010權(quán)限,代表該文件用戶組擁有執(zhí)行的權(quán)限 |
S_IRWXO | 00007權(quán)限,代表其他用戶擁有讀,寫(xiě)和執(zhí)行操作的權(quán)限 |
S_IROTH | 00004權(quán)限,代表其他用戶擁有可讀的權(quán)限 |
S_IWOTH | 00002權(quán)限,代表其他用戶擁有可寫(xiě)的權(quán)限 |
S_IXOTH | 00001權(quán)限,代表其他用戶擁有執(zhí)行的權(quán)限 |
示例代碼文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-645080.html
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
int checkMkdir(char *sPath);
int main()
{
char sPath[256 + 1];
memset(sPath, 0x00, sizeof(sPath));
sprintf(sPath, "%s/%s", getenv("HOME"), "test/test/");
if( 0 != checkMkdir(sPath))
{
printf("創(chuàng)建文件失敗\n");
}
else
{
printf("創(chuàng)建文件成功\n");
}
return 0;
}
/*
* 函數(shù)名稱 checkMkdir
* 函數(shù)功能 創(chuàng)建文件
* 函數(shù)描述 傳入一個(gè)文件所在的絕對(duì)路徑 創(chuàng)建文件
* 入 參 sPath 文件絕對(duì)路徑
* 返 回 SUCCESS return 0
* FAIL return 非0
*/
int checkMkdir(char *sPath)
{
int iRet = 0; /* 函數(shù)返回值 */
char sFilePath[256 + 1]; /* 創(chuàng)建文件路徑 */
char sPathTmp[256 + 1]; /* 臨時(shí)文件路徑 */
char *pDir = NULL;
struct stat stFileStat;
memset(sFilePath, 0x00, sizeof(sFilePath));
memset(sPathTmp, 0x00, sizeof(sPathTmp));
memset(&stFileStat, 0x00, sizeof(stFileStat));
memcpy(sFilePath, sPath, sizeof(sFilePath));
pDir = strtok(sFilePath, "/");
strcat(sPathTmp, "/");
strcat(sPathTmp, pDir);
strcat(sPathTmp, "/");
memset(&stFileStat, 0x00, sizeof(stFileStat));
stat(sPathTmp, &stFileStat);
if( !S_ISDIR(stFileStat.st_mode) )
{
iRet = mkdir(sPathTmp, S_IWUSR|S_IRUSR|S_IXUSR);
if( -1 == iRet )
{
printf("mkdir path [%s] error [%ld]\n", sPathTmp, iRet);
return iRet;
}
}
while( NULL != ( pDir=strtok(NULL, "/") ) )
{
strcat(sPathTmp, pDir);
strcat(sPathTmp, "/");
memset(&stFileStat, 0x00, sizeof(stFileStat));
stat(sPathTmp, &stFileStat);
if( !S_ISDIR(stFileStat.st_mode) )
{
iRet = mkdir(sPathTmp, S_IWUSR|S_IRUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP);
if( -1 == iRet )
{
printf("mkdir path [%s] error [%ld]\n", sPathTmp, iRet);
return iRet;
}
}
}
return iRet;
}
運(yùn)行結(jié)果文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-645080.html
到了這里,關(guān)于C語(yǔ)言創(chuàng)建目錄(文件夾)之mkdir的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!