国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 18:55:57
字體:
來源:轉載
供稿:網友

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

先來看該函數的聲明:

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

介紹:

參數說明:getcwd()會將當前工作目錄的絕對路徑復制到參數buffer所指的內存空間中,參數size為buf的空間大小。

普通的用法會是這樣:

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

這樣會將工作目錄的絕對路徑復制到buf所指向的空間中,但如果路徑長度大于size,則會返回NULL,錯誤代碼為ERANGE.所以我們在定義path的時候得定義的足夠大,但這樣又會使得內存浪費,Linux的文件名長度限制為255個英文字符,理論上絕對路徑的大小應該可以足夠大,故而這樣使用總有返回NULL的時候,所以getcwd()個我們提供了下面的一種用法:

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌都县| 龙泉市| 麻城市| 延安市| 利辛县| 固阳县| 弋阳县| 惠安县| 大关县| 沂水县| 延长县| 五家渠市| 贡嘎县| 家居| 迁西县| 高碑店市| 高阳县| 两当县| 阿拉善右旗| 如东县| 固始县| 平潭县| 集安市| 库尔勒市| 都江堰市| 江西省| 兴业县| 巴里| 昌乐县| 宜兰县| 阿拉善右旗| 田东县| 太湖县| 安仁县| 林周县| 青神县| 南京市| 望都县| 清徐县| 普兰店市| 泸州市|