700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux C 文件路径中获取文件名及路径

Linux C 文件路径中获取文件名及路径

时间:2019-04-05 00:12:43

相关推荐

Linux C 文件路径中获取文件名及路径

编程中有时会遇到需要把文件路径中的文件名或者路径提取出来的情况,发现了两个好用的函数记录一下。

一、提取文件名

头文件:#include <libgen.h>

**函数:**char *basename(char *path);

注:这个函数不会修改传入的path内容。

二、提取路径

头文件:#include <libgen.h>

**函数:**char *dirname(char *path);

注:这个函数会修改传入的path内容,如果不像path被改变需要重新申请一个buf传入,如果传入的是宏则会段错误。

三、提取结果示例

摘抄自:man 3 basename

四、使用示例

#include <stdio.h>#include <libgen.h>#include <string.h>#include <stdlib.h>static char s_filepath[] = "/mnt/usr/file.txt";int main(int argc, char **argv){char *path;printf("FILE_PATH - FILE : %s\n", basename(s_filepath));printf("1 -- s_filepath = %s\n", s_filepath);path = strdup(s_filepath);printf("1 -- path = %s\n", path);printf("FILE_PATH - PATH : %s\n", dirname(path));printf("2 -- path = %s\n", path);free(path);return 0;}

结果:

FILE_PATH - FILE : file.txt1 -- s_filepath = /mnt/usr/file.txt1 -- path = /mnt/usr/file.txtFILE_PATH - PATH : /mnt/usr2 -- path = /mnt/usr

从结果也可以看出dirname修改了传入的路径内容。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。