欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

#include <unistd.h>

定義函數(shù):

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

函數(shù)說明:getcwd()會將當前的工作目錄絕對路徑復制到參數(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í)行成功則將結果復制到參數(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 權限不足, 無法改變根目錄。
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("/");
}

相關文章

  • 簡單介紹C語言中的umask()函數(shù)和truncate()函數(shù)

    簡單介紹C語言中的umask()函數(shù)和truncate()函數(shù)

    這篇文章主要介紹了簡單介紹C語言中的umask()函數(shù)和truncate()函數(shù),是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • C++函數(shù)對象詳解附帶實例

    C++函數(shù)對象詳解附帶實例

    這篇文章主要介紹了C++函數(shù)對象詳解附帶實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • C語言超詳細講解文件的操作

    C語言超詳細講解文件的操作

    C語言文件操作的方法有很多,函數(shù)也有很多你知道哪些呢?下面是小編為大家?guī)淼腃語言文件操作的方法,歡迎閱讀
    2022-04-04
  • va_list(),va_start(),va_arg(),va_end() 詳細解析

    va_list(),va_start(),va_arg(),va_end() 詳細解析

    這些宏定義在stdarg.h中,所以用到可變參數(shù)的程序應該包含這個頭文件.下面我們寫一個簡單的可變參數(shù)的函數(shù),該函數(shù)至少有一個整數(shù)參數(shù),第二個參數(shù)也是整數(shù),是可選的.函數(shù)只是打印這兩個參數(shù)的值
    2013-09-09
  • CrashRpt使用案例詳解

    CrashRpt使用案例詳解

    這篇文章主要介紹了CrashRpt使用案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 淺談C++ Explicit Constructors(顯式構造函數(shù))

    淺談C++ Explicit Constructors(顯式構造函數(shù))

    下面小編就為大家?guī)硪黄獪\談C++ Explicit Constructors(顯式構造函數(shù))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 基于Qt實現(xiàn)駕校科目考試系統(tǒng)的示例代碼

    基于Qt實現(xiàn)駕校科目考試系統(tǒng)的示例代碼

    這篇文章主要為大家詳細介紹了如何基于Qt實現(xiàn)駕??颇靠荚囅到y(tǒng),文中的示例代碼講解詳細,對我們學習Qt有一定幫助,需要的可以參考一下
    2022-07-07
  • C/C++程序鏈接與反匯編工具objdump的使用介紹

    C/C++程序鏈接與反匯編工具objdump的使用介紹

    這篇文章主要介紹了C/C++程序鏈接與反匯編工具objdump的使用,程序構建過程的第二個階段就是鏈接,鏈接過程輸入的是目標文件的集合。每個目標文件可以被看作單個源代碼文件的二進制存儲版本
    2023-02-02
  • 詳解Matlab如何繪制小提琴圖

    詳解Matlab如何繪制小提琴圖

    小提琴圖 (Violin Plot)是用來展示多組數(shù)據(jù)的分布狀態(tài)以及概率密度。這種圖表結合了箱形圖和密度圖的特征,主要用來顯示數(shù)據(jù)的分布形狀。本文將介紹如何利用Matlab繪制小提琴圖,需要的可以參考一下
    2022-02-02
  • C++控制臺循環(huán)鏈表實現(xiàn)貪吃蛇

    C++控制臺循環(huán)鏈表實現(xiàn)貪吃蛇

    這篇文章主要為大家詳細介紹了C++控制臺循環(huán)鏈表實現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論