dirname, basename - 分析路径成员
总览 (SYNOPSIS)
#include <libgen.h> char *dirname(char *path);
char *basename(char *path);
描述 (DESCRIPTION)
dirname 和 basename 把 以 null 结尾 的 路径名 分解为 目录 和 文件名. 一般情况下, dirname 返回 路径名 的 前面部分, 直到 (但不包括) 最后一个 '/', 而 basename 则 返回 最后一个 '/' 后面 的 内容. 如果 路径名 以 '/' 结尾, 该 '/' 被认为 不是 路径名 的 一部分.
如果 路径名 path 不包含 斜杠 '/', dirname 返回 字符串 ".", 而 basename 返回 path 的 副本. 如果 路径名 path 是 "/", 则 dirname 和 basename 均 返回 "/". 如果 路径名 path 是 NULL 指针 或 指向 空串, 则 dirname 和 basename 均 返回 ".".
把 dirname 返回的 字符串, "/", 和 basename 返回的 字符串 连接 起来, 能够 产生 一个 完整 的 路径名.
无论 dirname 还是 basename 都 有可能 更改 path 的 内容, 因此 如果 需要 保护 原有 路径名, 应该 传送 副本 作为 参数. 此外, dirname 和 basename 返回的 指针 可能 指向 一块 静态分配 的 内存, 会被 下次 调用 覆盖.
下面 的 例子 (摘自 SUSv2) 展示了 对于 不同的 路径名, dirname 和 basename 返回 的 字符串:
path dirname basename
"/usr/lib" "/usr" "lib"
"/usr/" "/" "usr"
"usr" "." "usr"
"/" "/" "/"
"." "." "."
".." "." ".."
示例 (EXAMPLE)
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);
free(dirc);
free(basec);
返回值 (RETURN VALUE)
dirname 和 basename 均 返回 以 null 结尾的 字符串 的 指针.
dirname, basename - 分析路径成员的更多相关文章
- dirname basename 截取路径中的目录以及文件名
dirname basename 截取路径中的目录以及文件名 windows 下面: #include "shlwapi.h"#pragma comment(lib, &qu ...
- 总结:man, info, hwclock, cal, type, which, dirname, basename, who, which, whatis, makewhatis, hash, tty
man, info, help, date, hwclock, cal, shutdown, reboot, halt, poweroff, type, cd, which, dirname, bas ...
- linux 系统函数之 (dirname, basename)【转】
转自:http://blog.csdn.net/peter_cloud/article/details/9308333 版权声明:本文为博主原创文章,未经博主允许不得转载. 除非你的原件考虑跨平台. ...
- php路径目录解析函数dirname basename pathinfo区别及实例
php获取路径.目录或文件名称,我们经常会使用到dirname().basename().pathinfo()这三个函数,本文章向大家详细介绍这三个函数的区别以及使用实例,需要的朋友可以参考一下. d ...
- 【php】php路径目录解析函数dirname basename pathinfo区别及实例
php获取路径.目录或文件名称,我们经常会使用到dirname().basename().pathinfo()这三个函数,本文章向大家详细介绍这三个函数的区别以及使用实例,需要的朋友可以参考一下. d ...
- dirname,basename的用法与用途
#dirname介绍 当对文件使用dirname时,返回文件的上级目录,输出是否是绝对路径取决于输入的文件名是绝对路径 如果对目录使用,则返回上级目录 basename命令与dirname相反,读取文 ...
- c++ dirname() basename()
http://linux.about.com/library/cmd/blcmdl3_dirname.htm #include <iostream> #include <libgen ...
- Python3基础 os.path.basename 处理路径字符串,返回文件的名字
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- linux 常用命令: basename 去掉路径和扩展名
basename: 去掉路径和扩展名 /bin/basename coreutils-8.4-9.el6.x86_64 basename命令用于去掉路径信息,返回纯粹的文件名,如果指定的文件的扩展 ...
随机推荐
- JAVA泛型与可变参数
泛型的引入: 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题.也就存在这隐患,所以Java提供了泛型来解决这个安全问题. 格式: 泛型类:public class ...
- IT兄弟连 Java Web教程 经典面试题
1.什么是B/S结构?什么是C/S结构? B/S是Browser/Server的缩写客户机上只要安装—个浏览器(Browser)加Netscape Navigator或Internet Explore ...
- 工作中常用css样式总结
一.HTML隐藏文本输入框 有三种方法: 1.<input type="hidden" value=""> 这是对任何元素都起作用的: 2.< ...
- CI框架错误汇总
2017年1月13日12:09:02 [1] A PHP Error was encounteredSeverity: NoticeMessage: Undefined variable: aticl ...
- win32 寄存器
跳转指令分三类: 一.无条件跳转: JMP ;无条件跳转 二.根据CX.ECX寄存器的值跳转: JCXZ ;CX 为 0 则跳转 JECXZ;ECX 为 0 则跳转 三.根据EFLAGS寄存器的PSW ...
- Qt样式表之三:实现按钮三态效果的三种方法
按钮的三态,指的是普通态.鼠标的悬停态.按下态.Qt中如果使用的是默认按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果. 但是如果自定义按钮实现三态效果有三种方法,一种是设置背景图,主 ...
- 回文树1960. Palindromes and Super Abilities
Bryce1010模板 http://acm.timus.ru/problem.aspx?space=1&num=1960 #include <bits/stdc++.h> usi ...
- GCD Counting Codeforces - 990G
https://www.luogu.org/problemnew/show/CF990G 耶,又一道好题被我浪费掉了,不会做.. 显然可以反演,在这之前只需对于每个i,统计出有多少(x,y),满足x到 ...
- 素数+map BestCoder Round #54 (div.2) 1002 The Factor
题目传送门 题意:给出一个数列,问数列的乘积的一个满足条件的最小因子是什么,没有输出-1.条件是不是素数 分析:官方题解:对于每一个数字,它有用的部分其实只有它的所有质因子(包括相等的).求出所有数的 ...
- Suricata的输出
不多说,直接上干货! 见官网 https://suricata.readthedocs.io/en/latest/output/index.html 总的来说,Suricata采集下来的数据输出分为: ...