c++中dirname的用法
时间: 2023-06-22 18:46:53 浏览: 129
在C++中,`dirname()` 函数定义在 `libgen.h` 头文件中,可以用于获取指定路径的目录部分。它会把路径中的文件名或最后一个目录名去掉,返回剩余的路径部分。如果路径本身就是一个目录,那么直接返回该目录。
以下是 `dirname()` 的用法和示例:
用法:`char *dirname(char *path)`
参数 `path` 是需要获取目录的路径名,必须是 char* 类型的 C 字符串。
示例:
```cpp
#include <iostream>
#include <libgen.h>
int main() {
char path[] = "/home/user/Desktop/test.txt";
char *dir_path = dirname(path);
std::cout << dir_path << std::endl; // 输出:/home/user/Desktop
char path2[] = "/home/user/Documents";
char *dir_path2 = dirname(path2);
std::cout << dir_path2 << std::endl; // 输出:/home/user/Documents
return 0;
}
```
在这个示例中,`dirname()` 函数用于获取指定路径的目录部分。第一个示例中,指定的路径是 `/home/user/Desktop/test.txt`,`dirname()` 函数会把文件名 `test.txt` 去掉,返回 `/home/user/Desktop`;第二个示例中,指定的路径是 `/home/user/Documents`,因为该路径本身就是一个目录,所以 `dirname()` 函数会直接返回 `/home/user/Documents`。
需要注意的是,`dirname()` 函数会直接修改传入的路径参数,把其中的文件名或最后一个目录名去掉。因此,在使用 `dirname()` 函数时,需要注意不要传入常量字符串或指向常量字符串的指针,否则会导致程序崩溃。