linux 系统函数之 (dirname, basename)【转】

时间:2021-07-30 09:17:18

转自:http://blog.csdn.net/peter_cloud/article/details/9308333

版权声明:本文为博主原创文章,未经博主允许不得转载。

        除非你的原件考虑跨平台。

       在Linux编程多使用一些系统函数真的很方便,哎没办法越来越懒~~~~~~

       今天记录一下dirname 和basename这两个简单的处理文件路径的linux系统函数。

        头文件:

                         #include <libgen.h>

        函数定义:

                         char *dirname(char *path);

                         char *basename(char *path);

        功能描述:

                        char *dirname(char *path);

                        功能: 截取path中的目录路径返回。

                        char *basename(char *path);

                        功能: 截取path中的去目录部分的最后的文件或路径名。

         返回值:

                       char *dirname(char *path);

                       成功: 返回截取path中的目录路径指针。

                       失败: 返回 NULL

                       char *basename(char *path);

                       成功: 返回截取path中的去目录部分的最后的文件或路径名指针。

                       失败: 返回 NULL

示例图:

                       path         dirname    basename
"/usr/lib" "/usr" "lib"
"/usr/" "/" "usr"
"usr" "." "usr"
"/" "/" "/"
"." "." "."
".." "." ".." 代码示例: char *dirc, *basec, *bname, *dname;
char *path = "/etc/passwd"; dirc = strdup(path);
basec = strdup(path);
dname = dirname(dirc);
bname = basename(basec);
printf("dirname=%s, basename=%s\n", dname, bname);