亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Linux 中C語(yǔ)言getcwd()函數(shù)的用法

 更新時(shí)間:2017年04月04日 10:09:32   作者:嵐漾憶雨  
這篇文章主要介紹了Linux 中C語(yǔ)言getcwd()函數(shù)的用法的相關(guān)資料,需要的朋友可以參考下

Linux 中C語(yǔ)言getcwd()函數(shù)的用法

先來(lái)看該函數(shù)的聲明:

#include<unistd.h>
char *getcwd(char *buf,size_t size);

介紹:

參數(shù)說(shuō)明:getcwd()會(huì)將當(dāng)前工作目錄的絕對(duì)路徑復(fù)制到參數(shù)buffer所指的內(nèi)存空間中,參數(shù)size為buf的空間大小。

普通的用法會(huì)是這樣:

#define MAX_SIZE 255
char path(MAX_SIZE);
getcwd(path,sizeof(path));
puts(path);

這樣會(huì)將工作目錄的絕對(duì)路徑復(fù)制到buf所指向的空間中,但如果路徑長(zhǎng)度大于size,則會(huì)返回NULL,錯(cuò)誤代碼為ERANGE.所以我們?cè)诙xpath的時(shí)候得定義的足夠大,但這樣又會(huì)使得內(nèi)存浪費(fèi),Linux的文件名長(zhǎng)度限制為255個(gè)英文字符,理論上絕對(duì)路徑的大小應(yīng)該可以足夠大,故而這樣使用總有返回NULL的時(shí)候,所以getcwd()個(gè)我們提供了下面的一種用法:

可以采取令 buf 為 NULL并使 size 為零(百度百科里介紹可以使用負(fù)值但我測(cè)試的時(shí)候是段錯(cuò)誤)來(lái)使 getcwd 調(diào)用 malloc 動(dòng)態(tài)給 buf 分配,但是這種情況要特別注意使用后釋放緩沖以防止內(nèi)存泄漏。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(void)
{
  char *path = NULL;
  path = getcwd(NULL,0);
  puts(path);
  free(path);
  return 0;
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論