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
函数类似,但需要传入一个额外的缓冲区。