通过系统调用basename(), dirname()得到当前路径下的文件名和目录名
来源:互联网 发布:淘宝买家秀百度云 编辑:程序博客网 时间:2024/05/16 18:16
问题提出:
最近小组的小伙伴们都在写my_ls,myshell, 可能经常会遇到这样的问题, 需要得到当前路径下的文件名
比如当前绝对路径:/home/dela/dela_c, 现在想得到dela_c怎么办, 反正我在实现这个问题的时候费了一番功夫
现在跟小伙伴们分享一个很简单的方法, 就是:basename和dirname系统调用!!!
函数声明
头文件: #include<libgen.h>
函数声明: char *dirname(char *path);
char * basename(char *path);
函数用法
basename(): 截取path中的去目录部分的最后的文件名
dirname(): 截取path中的目录路径名
成功将返回文件名或目录名, 失败返回NULL
程序示例:
#include<stdio.h>#include<libgen.h>#include<unistd.h>#include<string.h>#include<dirent.h>int main(int argc,char *argv[]){ char path[PATH_MAX] = {0}; char filename[NAME_MAX] = {0}; char thisDirname[PATH_MAX] = {0}; strcpy(path, getcwd(NULL, 0)); strcpy(filename, basename(path)); strcpy(thisDirname, dirname(path)); printf("%s\n", filename); printf("%s\n", thisDirname); return 0;}
[dela@server1 dela_c]$ gcc get_dirname_and_filename.c [dela@server1 dela_c]$ ./a.outdela_c/home/dela
程序说明:
通过getcwd()系统调用得到了当前工作目录: /home/dela/dela_c, 然后将当前工作目录存到path中, 然后将path当作参数传给basename()和dirname()
这样就可以得到当前工作文件为:dela_c, 当前工作文件的目录名:/home/dela
真是两个好用到哭的系统调用~
1 0
- 通过系统调用basename(), dirname()得到当前路径下的文件名和目录名
- [一天几个linux命令] dirname basename 取得路径的文件名与目录名称
- 获得当前目录的信息:dirname()、basename()、disk_free_space() 和 scandir()函数
- dirname和basename的用法
- C++通过路径名得到文件名
- 【basename】取出路径的文件名
- 强悍的命令行 —— basename 去掉路径和扩展名 dirname 获取路径
- Linux系统调用当前路径下需要在文件名前加 ./ 的原由
- basename 和 dirname
- linux basename和dirname
- dirname和basename用法
- VS通过文件路径名查找到当前文件夹和当前文件名
- Linux去掉文件名的目录和后缀命令basename
- Linux去掉文件名的目录和后缀命令basename
- 分解路径为目录名和文件名的方法
- linux_取得路径文件名和目录名
- _splitpath函数得到文件的目录名和路径
- php中有关目录的几个函数 basename() dirname() pathinfo()
- UVa 815 洪水!Flooded!
- 未完
- Microsoft Caffe(msCaffe)无GPU快速配置
- sdut oj2133 数据结构实验之栈三:后缀式求值
- 通知栏的最小代码
- 通过系统调用basename(), dirname()得到当前路径下的文件名和目录名
- Faster RCNN实验
- Git 相关
- 题目844 A+B Problem (V)
- PV、TPS、QPS是怎么计算出来的?
- 自定义圆形滚动条(透明效果)--利用开源项目ProgressWheel
- PHP数组与JSON数据格式的转换
- Java 分布式事务(多数据源)
- 解析XML的几种方式