getcwd()函数用法
生活随笔
收集整理的這篇文章主要介紹了
getcwd()函数用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux 中C語言getcwd()函數的用法
先來看該函數的聲明:
#include<unistd.h> char *getcwd(char *buf,size_t size);參數說明:getcwd()會將當前工作目錄的絕對路徑復制到參數buffer所指的內存空間中,參數size為buf的空間大小。 介紹:?
普通的用法會是這樣:
#define MAX_SIZE 255 char path(MAX_SIZE); getcwd(path,sizeof(path)); puts(path);這樣會將工作目錄的絕對路徑復制到buf所指向的空間中,但如果路徑長度大于size,則會返回NULL,錯誤代碼為ERANGE.所以我們在定義path的時候得定義的足夠大,但這樣又會使得內存浪費,Linux的文件名長度限制為255個英文字符,理論上絕對路徑的大小應該可以足夠大,故而這樣使用總有返回NULL的時候,所以getcwd()個我們提供了下面的一種用法:
#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 為零(百度百科里介紹可以使用負值但我測試的時候是段錯誤)來使 getcwd 調用 malloc 動態給 buf 分配,但是這種情況要特別注意使用后釋放緩沖以防止內存泄漏
?
總結
以上是生活随笔為你收集整理的getcwd()函数用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器tail正常,cat正常,vim打
- 下一篇: windows下,linux下c++生成