当前位置: 首页 > news >正文

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

转自: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);

 

转载于:https://www.cnblogs.com/sky-heaven/p/7220842.html

相关文章:

  • [转] Java关键字final、static使用总结
  • thrift-TFileTransport
  • linux配置nfs步骤及心得
  • idea工具使用 修改resource无法立即生效 需要重启
  • 并查集专题: HDU1232畅通工程
  • 深入理解7816(3)-----关于T=0 【转】
  • 安装aix 6.1系统的完整教程,初学者都可以学会
  • iOS 颜色设置看我就够了
  • [webpack] devtool里的7种SourceMap[转]
  • 【Unity笔记】用代码动态修改Animator状态机的状态
  • ES6解构赋值
  • 给Lisp程序员的Python简介
  • 《thinking in Java》--第二章一切都是对象
  • C# 添加、修改和删除PDF书签
  • DIR
  • angular2开源库收集
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • IDEA 插件开发入门教程
  • input实现文字超出省略号功能
  • learning koa2.x
  • Linux后台研发超实用命令总结
  • Markdown 语法简单说明
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • vue-loader 源码解析系列之 selector
  • 记录一下第一次使用npm
  • 设计模式走一遍---观察者模式
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • $().each和$.each的区别
  • (2015)JS ES6 必知的十个 特性
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)setTimeout 和 setInterval 的区别
  • .net 4.0发布后不能正常显示图片问题
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .pop ----remove 删除
  • ::前边啥也没有
  • [ C++ ] 继承
  • [ASP]青辰网络考试管理系统NES X3.5
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C]编译和预处理详解
  • [ESP32 IDF]web server
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
  • [HNOI2018]排列
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [IE技巧] 如何让IE 启动的时候不加载任何插件
  • [JS] node.js 入门
  • [JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为‘chrome61‘
  • [LeetCode 127] - 单词梯(Word Ladder)
  • [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表