程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話中獲得和轉變目次的相干函數總結

C說話中獲得和轉變目次的相干函數總結

編輯:關於C++

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("/");
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved