C語言中獲取和改變目錄的相關函式總結

2022-10-04 02:18:08 字數 1420 閱讀 9500

c語言getcwd()函式:取得當前的工作目錄

標頭檔案:

#include

定義函式:

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

函式說明:getcwd()會將當前的工作目錄絕對路徑複製到引數buf 所指的記憶體空間,引數size 為buf 的空間大小。

注:1、在呼叫此函式時,buf 所指的記憶體空間要足夠大。若工作目錄絕對路徑的字串長度超過引數size 大小,則返回null,errno 的值則為erange。

2、倘若引數buf 為null,getcwd()會依引數size 的大小自動配置記憶體(使用malloc()),如果引數size 也為0,則getcwd()會依工作目錄絕對路徑的字串程度來決定所配置的記憶體大小,程序可以在使用完次字串後利用free()來釋放此空間。

返回值:執行成功則將結果複製到引數buf 所指的記憶體空間, 或是返回自動配置的字串指標. 失敗返回null,錯誤**存於errno.

範例#include

main()

執行:current work程式設計客棧ing directory :/tmp

c語言chdir()函式:改變當前的工作目錄

標頭檔案:

#include

定義函式:

int chdir(const char * path);

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

返回值執:行成功則返回0, 失敗返回-1, errno 為錯誤**.

範例#include

main()

執行:current working d程式設計客棧irectory :/tmp

c語言chroot()函式:改變檔案根目錄

標頭檔案:

#include p***wcupow>

定義函式:

int chroot(const char * path);

函式說明:chroot()用來改變根目錄為引數path 所指定的目錄。只有超級使用者才允許改變根目錄,子程序將繼承新的根目錄。

返回值:呼叫成功則返回0, 失敗則返-1, 錯誤**存於errno.

錯誤**:

1、eperm 許可權不足, 無法改變根目錄。

2、efault 引數path 指標超出可訪問記憶體空間。

3、enametoolong 引數path 太長。

4、enotdir 路徑中的目錄存在但卻非真正的目錄。

5、eaccess 訪問目錄時被拒絕。

6、enomem 核心記憶體不足。

7、eloop 引數path 有過多符號連線問題。

8、eio i/o 訪問錯誤。

範例/* 將根目錄改為/tmp, 並將工作目錄切換至/tmp */

#include

main()

本文位址:

C語言中的setjmp和longjmp函式

c語言的setjmp 異常處理與構建協作式多工系統 int setjmp jmp buf envbuf 巨集函式setjmp 在緩衝區envbuf中儲存系統堆疊裡的內容,供longjmp 以後使用,setjmp 必須使用標頭檔案setjmp.h。呼叫setjmp 巨集時,返回值為0,然而longjm...

C語言中的strdup 和strndup 函式

strdup 和 strndup 函式的原型分別為 include char strdup const char s char strndup const char s,size t n 說明 strdup 函式將引數 s 指向的字串複製到乙個字串指標上去,這個字串指標事先可以沒被初始化。在複製時,...

c語言中calloc函式和malloc函式

1 void calloc unsigned int num,unsigned int size 記憶體的動態儲存區中分配num個長度為size的連續空間,返回所分配的記憶體空間的首位址 如果分配失敗,返回null。2 void malloc unsigned int size 動態分配記憶體 si...