最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中獲取和改變目錄的相關(guān)函數(shù)總結(jié)

 更新時間:2015年09月01日 11:07:09   投稿:goldensun  
這篇文章主要介紹了C語言中獲取和改變目錄的相關(guān)函數(shù)總結(jié),包括getcwd()函數(shù)和chdir()函數(shù)以及chroot()函數(shù)的使用方法,需要的朋友可以參考下

C語言getcwd()函數(shù):取得當前的工作目錄
頭文件:

#include <unistd.h>

定義函數(shù):

char * getcwd(char * buf, size_t size);

函數(shù)說明:getcwd()會將當前的工作目錄絕對路徑復(fù)制到參數(shù)buf 所指的內(nèi)存空間,參數(shù)size 為buf 的空間大小。

注:
1、在調(diào)用此函數(shù)時,buf 所指的內(nèi)存空間要足夠大。若工作目錄絕對路徑的字符串長度超過參數(shù)size 大小,則返回NULL,errno 的值則為ERANGE。
2、倘若參數(shù)buf 為NULL,getcwd()會依參數(shù)size 的大小自動配置內(nèi)存(使用malloc()),如果參數(shù)size 也為0,則getcwd()會依工作目錄絕對路徑的字符串程度來決定所配置的內(nèi)存大小,進程可以在使用完次字符串后利用free()來釋放此空間。

返回值:執(zhí)行成功則將結(jié)果復(fù)制到參數(shù)buf 所指的內(nèi)存空間, 或是返回自動配置的字符串指針. 失敗返回NULL,錯誤代碼存于errno.

范例

#include <unistd.h>
main()
{
  char buf[80];
  getcwd(buf, sizeof(buf));
  printf("current working directory : %s\n", buf);
}

執(zhí)行:

current working directory :/tmp


C語言chdir()函數(shù):改變當前的工作目錄
頭文件:

#include <unistd.h>

定義函數(shù):

int chdir(const char * path);

函數(shù)說明:chdir()用來將當前的工作目錄改變成以參數(shù)path 所指的目錄.

返回值執(zhí):行成功則返回0, 失敗返回-1, errno 為錯誤代碼.

范例

#include <unistd.h>
main()
{
  chdir("/tmp");
  printf("current working directory: %s\n", getcwd(NULL, NULL));
}

執(zhí)行:

current working directory :/tmp


C語言chroot()函數(shù):改變文件根目錄
頭文件:

 #include <unistd.h>

定義函數(shù):

int chroot(const char * path);

函數(shù)說明:chroot()用來改變根目錄為參數(shù)path 所指定的目錄。只有超級用戶才允許改變根目錄,子進程將繼承新的根目錄。

返回值:調(diào)用成功則返回0, 失敗則返-1, 錯誤代碼存于errno.

錯誤代碼:
1、EPERM 權(quán)限不足, 無法改變根目錄。
2、EFAULT 參數(shù)path 指針超出可存取內(nèi)存空間。
3、ENAMETOOLONG 參數(shù)path 太長。
4、ENOTDIR 路徑中的目錄存在但卻非真正的目錄。
5、EACCESS 存取目錄時被拒絕。
6、ENOMEM 核心內(nèi)存不足。
7、ELOOP 參數(shù)path 有過多符號連接問題。
8、EIO I/O 存取錯誤。

范例

/* 將根目錄改為/tmp, 并將工作目錄切換至/tmp */
#include <unistd.h>
main()
{
  chroot("/tmp");
  chdir("/");
}

相關(guān)文章

  • C++實現(xiàn)遞歸函數(shù)的方法

    C++實現(xiàn)遞歸函數(shù)的方法

    在本篇內(nèi)容里小編給大家分享了關(guān)于C++實現(xiàn)遞歸函數(shù)的教學步驟,需要的朋友跟著參考下。
    2018-12-12
  • C++超詳細講解強制類型轉(zhuǎn)換的用法

    C++超詳細講解強制類型轉(zhuǎn)換的用法

    在C++語言中新增了四個關(guān)鍵字static_cast、const_cast、reinterpret_cast和dynamic_cast。這四個關(guān)鍵字都是用于類型轉(zhuǎn)換的,類型轉(zhuǎn)換(type?cast),是高級語言的一個基本語法。它被實現(xiàn)為一個特殊的運算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細了解
    2022-06-06
  • C++實現(xiàn)LeetCode(132.拆分回文串之二)

    C++實現(xiàn)LeetCode(132.拆分回文串之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(132.拆分回文串之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Opencv EigenFace人臉識別算法詳解

    Opencv EigenFace人臉識別算法詳解

    這篇文章主要為大家詳細介紹了Opencv EigenFace人臉識別算法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C++之std命名空間

    C++之std命名空間

    這篇文章主要介紹了C++之std命名空間使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C字符串與C++字符串的深入理解

    C字符串與C++字符串的深入理解

    本篇文章是對C字符串與C++字符串進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++?Queue隊列類模版實例詳解

    C++?Queue隊列類模版實例詳解

    這篇文章主要為大家詳細介紹C++?Queue隊列類模版實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 使用C語言編寫鋼琴小程序

    使用C語言編寫鋼琴小程序

    這篇文章主要為大家詳細介紹了使用C語言編寫鋼琴小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[九]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[九]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[九]...
    2007-02-02
  • C++中范圍(Ranges)與視圖(Views)的常見問題、易錯點

    C++中范圍(Ranges)與視圖(Views)的常見問題、易錯點

    ranges和views是C20引入的重要特性,它們讓代碼更加簡潔、高效且富有表達力,通過理解其基本概念、注意常見的陷阱,并合理應(yīng)用高級技巧,開發(fā)者可以充分利用這些新特性,提升軟件質(zhì)量和開發(fā)效率,,本文將深入淺出地探討ranges與views的基礎(chǔ)概念、常見問題、易錯點及避免策略
    2024-06-06

最新評論

商城县| 湟中县| 通辽市| 睢宁县| 梁山县| 宜宾县| 正阳县| 嘉善县| 正阳县| 红河县| 巨野县| 应用必备| 南陵县| 肃南| 京山县| 东海县| 毕节市| 肥西县| 泰宁县| 永登县| 运城市| 射阳县| 塘沽区| 定州市| 饶河县| 许昌县| 长寿区| 安康市| 且末县| 同德县| 会理县| 曲靖市| 旬阳县| 石狮市| 桐梓县| 龙州县| 清原| 红河县| 大埔县| 慈利县| 西平县|