日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

getcwd()函数用法

發(fā)布時(shí)間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 getcwd()函数用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

#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è)我們提供了下面的一種用法:

#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; }

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

?

總結(jié)

以上是生活随笔為你收集整理的getcwd()函数用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。