C語言中的dirname
函數用于獲取一個文件路徑的目錄部分。它的函數原型如下:
#include <libgen.h>
char *dirname(char *path);
其中,path
為要提取目錄的文件路徑。dirname
函數返回一個指向目錄部分的字符串指針。
使用dirname
函數的示例代碼如下:
#include <stdio.h>
#include <libgen.h>
int main() {
char path[] = "/usr/local/include/stdio.h";
char *dir = dirname(path);
printf("Directory: %s\n", dir);
return 0;
}
輸出結果為:
Directory: /usr/local/include
注意事項:
dirname
函數會修改傳入的路徑字符串,使其指向目錄部分的字符串。
如果傳入的路徑沒有目錄部分(例如只有文件名),dirname
函數會返回一個點號(.)。
dirname
函數是非線程安全的,因為它使用了靜態緩沖區來存儲結果,所以在多線程環境中應該使用dirname_r
函數來替代。dirname_r
函數的使用方法與dirname
函數類似,但需要傳入一個額外的緩沖區。