C說話中獲得和轉變目次的相干函數總結。本站提示廣大學習愛好者:(C說話中獲得和轉變目次的相干函數總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中獲得和轉變目次的相干函數總結正文
C說話getcwd()函數:獲得以後的任務目次
頭文件:
#include <unistd.h>
界說函數:
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 <unistd.h> main() { char buf[80]; getcwd(buf, sizeof(buf)); printf("current working directory : %s\n", buf); }
履行:
current working directory :/tmp
C說話chdir()函數:轉變以後的任務目次
頭文件:
#include <unistd.h>
界說函數:
int chdir(const char * path);
函數解釋:chdir()用來將以後的任務目次轉變成以參數path 所指的目次.
前往值執:行勝利則前往0, 掉敗前往-1, errno 為毛病代碼.
典范
#include <unistd.h> main() { chdir("/tmp"); printf("current working directory: %s\n", getcwd(NULL, NULL)); }
履行:
current working directory :/tmp
C說話chroot()函數:轉變文件根目次
頭文件:
#include <unistd.h>
界說函數:
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 <unistd.h> main() { chroot("/tmp"); chdir("/"); }