C語言創建目錄(文件夾)之mkdir

一、mkdir

說明:創建目錄。
頭文件庫:

#include <sys/stat.h>
#include <sys/types.h>

函數原型:

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

mode方式:可多個權限相或,如0755表示S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH

權限說明
S_IRWXU00700權限,代表該文件所有者擁有讀,寫和執行操作的權限
S_IRUSR(S_IREAD)00400權限,代表該文件所有者擁有可讀的權限
S_IWUSR(S_IWRITE)00200權限,代表該文件所有者擁有可寫的權限
S_IXUSR(S_IEXEC)00100權限,代表該文件所有者擁有執行的權限
S_IRWXG00070權限,代表該文件用戶組擁有讀,寫和執行操作的權限
S_IRGRP00040權限,代表該文件用戶組擁有可讀的權限
S_IWGRP00020權限,代表該文件用戶組擁有可寫的權限
S_IXGRP00010權限,代表該文件用戶組擁有執行的權限
S_IRWXO00007權限,代表其他用戶擁有讀,寫和執行操作的權限
S_IROTH00004權限,代表其他用戶擁有可讀的權限
S_IWOTH00002權限,代表其他用戶擁有可寫的權限
S_IXOTH00001權限,代表其他用戶擁有執行的權限

示例代碼

#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("創建文件失敗\n");}else{printf("創建文件成功\n");}return 0;
}/** 函數名稱 checkMkdir* 函數功能 創建文件* 函數描述 傳入一個文件所在的絕對路徑 創建文件* 入    參 sPath 文件絕對路徑* 返    回 SUCCESS return 0*          FAIL    return 非0
*/
int checkMkdir(char *sPath)
{int iRet = 0;                         /* 函數返回值 */char sFilePath[256 + 1];              /* 創建文件路徑 */char sPathTmp[256 + 1];               /* 臨時文件路徑 */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;
}

運行結果
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34690.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34690.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34690.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

使用Crow的時候需要注意crow依賴asio依賴OpenSSL&#xff0c;asio要求1.22以上版本&#xff0c;我使用的是1.26.0&#xff1b; 這個版本的asio要求OpenSSL是1.0.2&#xff0c;其他版本我得機器上編不過&#xff0c;ubuntu上默認帶的OpenSSL是1.1.1; 所以我下載了OPENSSL1.2.0重…

MySQL高階知識點(一)一條SQL【更新】語句是如何執行的

一條SQL【更新】語句是如何執行的 首先&#xff0c;可以確定的說&#xff0c;【查詢】語句的那一套流程&#xff0c;【更新】語句也是同樣會走一遍&#xff0c;與查詢流程不一樣的是&#xff0c; 更新語句涉及到【事務】&#xff0c;就必須保證事務的四大特性&#xff1a;ACID&…

項目介紹:《WeTalk》網頁聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

目錄 引言&#xff1a; 前言&#xff1a; 技術棧&#xff1a; 主要功能&#xff1a; 功能詳解&#xff1a; 1. 用戶注冊與登錄&#xff1a; 2. 添加好友 3. 實時聊天 4. 消息未讀 5. 刪除聊天記錄 6. 刪除好友 未來展望&#xff1a; 項目地址&#xff1a; 結語&am…

【redis 3.2 集群】

目錄 一、Redis主從復制 1.概念 2.作用 2.1 數據冗余 2.2 故障恢復 2.3 負載均衡 2.4 高可用 3.缺點 4.流程 4.1 第一步 4.2 第二步 4.3 第三步 4.4 第四步 5.搭建 5.1 主 5.2 從 6.驗證 二、Reids哨兵模式 1.概念 2.作用 2.1 監控 2.2 自動故障轉移 2.…

分布式應用:Zabbix監控Nginx

目錄 一、理論 1.Zabbix監控Nginx 二、實驗 1.Zabbix監控Nginx部署 三、問題 1.重啟zabbix客戶端失敗 2.zabbix服務端測試客戶端nginx狀態失敗 3.nginx啟動失敗 4.權限不夠 一、理論 1.Zabbix監控Nginx &#xff08;1&#xff09;環境 zabbix服務端&#xff1a;192.1…

Tomcat線程池原理

1. 一個 SpringBoot 項目能同時處理多少請求&#xff1f;tomcat容器&#xff0c; 200 次。 2. 怎么來的&#xff1f; 而點擊這些線程&#xff0c;查看其堆棧消息&#xff0c;可以看到 Tomcat、threads、ThreadPoolExecutor 等關鍵字 基于“短時間內有 200 個請求被立馬處理…

分類預測 | Python實現LR邏輯回歸多輸入分類預測

分類預測 | Python實現LR邏輯回歸多輸入分類預測 目錄 分類預測 | Python實現LR邏輯回歸多輸入分類預測基本介紹模型描述源碼設計學習小結參考資料基本介紹 邏輯回歸是一種廣義線性的分類模型且其模型結構可以視為單層的神經網絡,由一層輸入層、一層僅帶有一個sigmoid激活函數…

設計模式十二:享元模式(Flyweight Pattern)

當我們需要創建大量相似對象時&#xff0c;享元模式可以幫助我們節省內存空間和提高性能。該模式通過共享相同的數據來減少對象的數量。 在享元模式中&#xff0c;有兩種類型的對象&#xff1a;享元&#xff08;Flyweight&#xff09;和非享元&#xff08;Unshared Flyweight&a…

Postman下載教程

目錄 下載 安裝 注意事項 看到很多小伙伴在問 Postman 下載的相關問題&#xff0c;花時間整理了下&#xff0c;下面教新入門的小伙伴如何去下載 Postman。 開始前我們可以先了解下&#xff1a;Postman 簡介 下載 第一步&#xff1a;進入 Postman 官網 首先&#xff0c;我…

maven打包上傳到私有倉庫的步驟

maven打包上傳到私有倉庫的步驟 一、pom.xml引入二、Maven的settings.xml三、pom.xml中添加源碼插件四、執行發布命令 先準備私庫地址&#xff1a; http://localhost:8081/nexus3/repository/maven-releases http://localhost:8081/nexus3/repository/maven-snapshots 假如現需…

如何在Vue表單處理中實現表單字段的文件下載

Vue.js 是一種流行的JavaScript框架&#xff0c;用于構建用戶界面。在Vue應用中&#xff0c;我們經常需要處理表單操作&#xff0c;其中一個常見需求是實現文件下載。以下介紹如何在Vue表單處理中實現表單字段的文件下載&#xff0c;大家共同交流。 一、使用HTML的a標簽實現文…

Java單例模式詳解(五種實現方式)

1、什么是單例模式&#xff1f; Java單例模式是一種設計模式&#xff0c;用于確保一個類只有一個實例&#xff0c;并提供全局訪問點以獲取該實例。它通常用于需要共享資源或控制某些共享狀態的情況下。 例如&#xff1a; 一個日志記錄器&#xff08;Logger&#xff09;。在一個…

二級考python和c語言哪個好,計算機二級python和c

大家好&#xff0c;小編來為大家解答以下問題&#xff0c;二級python和二級c語言哪個更吃香一些&#xff0c;二級python和二級c語言哪個更吃香一點&#xff0c;今天讓我們一起來看看吧&#xff01; 計算機二級貌似只是在校園里的自嗨&#xff0c;出來工作后并沒有覺得這個證書有…

JavaScript+Asp.Net MVC5同時下載多個文件

前端同時啟動多個下載任務&#xff08;但是沒有做壓縮包下載&#xff09; 前端JavaScript腳本&#xff1a; var idList [1,2,3];//要下載的列表 $.each(idList, function (index, item) {downloadURL("/File/GetPdf?id" item); });var count 0; var downloadUR…

LeetCode 21.合并兩個有序鏈表

文章目錄 &#x1f4a1;題目分析&#x1f4a1;解題思路&#x1f6a9;思路1: 歸并排序思想&#xff08;不使用帶哨兵衛的頭節點&#xff09;&#x1f514;接口源碼&#xff1a; &#x1f4a1;解題思路&#x1f6a9;思路2: 歸并排序思想&#xff08;使用帶哨兵衛的頭節點&#xf…

Ubuntu安裝JDK與IntelliJ IDEA

目錄 前言 Ubuntu 安裝 JDK 1、更新軟件包列表 2、安裝OpenJDK 3、驗證安裝 Ubuntu安裝IntelliJ IDEA 1、下載 IntelliJ IDEA 2、解壓縮 IntelliJ IDEA 安裝包 3、移動 IntelliJ IDEA 到安裝目錄 4、啟動 IntelliJ IDEA 前言 APT&#xff08;Advanced Package Tool&…

web-xss-dvwa

目錄 xss&#xff08;reflected&#xff09; low medium high xss(store) low medium high xss(dom) low medium high xss&#xff08;reflected&#xff09; low 沒有什么過濾&#xff0c;直接用最普通的標簽就可以了 http://127.0.0.1/DVWA-master/vulnerabili…

C++ STL vector 模擬實現

?<1>主頁&#xff1a;我的代碼愛吃辣 &#x1f4c3;<2>知識講解&#xff1a;C之STL &#x1f525;<3>創作者&#xff1a;我的代碼愛吃辣 ??<4>開發環境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;上次我們已經數字會用…

【uniapp使用web-view點擊返回報錯后返回不了】

問題及解決 問題解決 問題 使用web-view跳轉到別人的網站之后點擊返回報錯&#xff0c;返回不了 解決 使用以下方法 <template><view></view> </template> <script> var wv;//計劃創建的webview export default {onLoad() {// #ifdef APP-PL…

(杭電多校)2023“釘耙編程”中國大學生算法設計超級聯賽(7)

1002 Random Nim Game 只有3種情況,要么必贏,要么必輸,要么從宏觀角度考慮,隨機的話,贏的概率就是1/2(就像拋硬幣一樣,隨著拋的次數越來越多,正反面的概率將越來越接近1) 當只要有一堆石頭數量不是1,那么就是必贏或必輸,贏的概率就是1/2 當每堆石頭數量都為1時,當堆數為奇數…