C語言中的dirname
函數(shù)用于獲取一個文件路徑的目錄部分。它的函數(shù)原型如下:
#include <libgen.h>
char *dirname(char *path);
其中,path
為要提取目錄的文件路徑。dirname
函數(shù)返回一個指向目錄部分的字符串指針。
使用dirname
函數(shù)的示例代碼如下:
#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;
}
輸出結(jié)果為:
Directory: /usr/local/include
注意事項(xiàng):
dirname
函數(shù)會修改傳入的路徑字符串,使其指向目錄部分的字符串。
如果傳入的路徑?jīng)]有目錄部分(例如只有文件名),dirname
函數(shù)會返回一個點(diǎn)號(.)。
dirname
函數(shù)是非線程安全的,因?yàn)樗褂昧遂o態(tài)緩沖區(qū)來存儲結(jié)果,所以在多線程環(huán)境中應(yīng)該使用dirname_r
函數(shù)來替代。dirname_r
函數(shù)的使用方法與dirname
函數(shù)類似,但需要傳入一個額外的緩沖區(qū)。