這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何在Linux 中使用getcwd()函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

#include<unistd.h> char *getcwd(char *buf,size_t size);
介紹:
參數(shù)說明:getcwd()會(huì)將當(dāng)前工作目錄的絕對路徑復(fù)制到參數(shù)buffer所指的內(nèi)存空間中,參數(shù)size為buf的空間大小。
普通的用法會(huì)是這樣:
#define MAX_SIZE 255 char path(MAX_SIZE); getcwd(path,sizeof(path)); puts(path);
這樣會(huì)將工作目錄的絕對路徑復(fù)制到buf所指向的空間中,但如果路徑長度大于size,則會(huì)返回NULL,錯(cuò)誤代碼為ERANGE.所以我們在定義path的時(shí)候得定義的足夠大,但這樣又會(huì)使得內(nèi)存浪費(fèi),Linux的文件名長度限制為255個(gè)英文字符,理論上絕對路徑的大小應(yīng)該可以足夠大,故而這樣使用總有返回NULL的時(shí)候,所以getcwd()個(gè)我們提供了下面的一種用法:
可以采取令 buf 為 NULL并使 size 為零(百度百科里介紹可以使用負(fù)值但我測試的時(shí)候是段錯(cuò)誤)來使 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;
}上述就是小編為大家分享的如何在Linux 中使用getcwd()函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱:如何在Linux中使用getcwd()函數(shù)-創(chuàng)新互聯(lián)
URL分享:http://www.jbt999.com/article10/ccgdgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、虛擬主機(jī)、電子商務(wù)、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)