basename, dirname 在C语言中的使用
basename作用是得到特定的路径中的最后一个'/',后面的内容
如/usr/bin,得到的内容就是bin
如果/sdcard/miui_recovery/backup
得到的内容就是backup
如果是/sdcard/update.zip
得到的内容就是update.zip
----------------------------------------------------
dirname作用是 截取给定路径的目录部分
如/usr/bin,得到的内容就是/usr
如/sdcard/miui_recovery/backup,得到的内容是/sdcard/miui_recovery
如/sdcard/update.zip,得到的内容是/sdcard
下面是实例代码:
/*
* 截取给定路径的文件名,获取路径最后一个'/'后面的内容
* example:
* basename("/usr/test/hello.c");
* hello.c
* basename("/sdcard/update.zip");
* update.zip
* basename("/usr/bin");
* bin
*/ #include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/stat.h>
#include <libgen.h>
#include <unistd.h> int main(int argc, char *argv[]) {
char *test_a = "/usr/bin";
char *test_b = "/sdcard/miui_recovery/backup/blobs";
char *test_c = "/sdcard/update.zip";
printf("Test 1: '/usr/bin' -> %s \n", basename(test_a));
printf("Test 2: '/sdcard/miui_recovery/backup/blobs' -> %s \n", basename(test_b));
printf("Test 3: '/sdcard/update.zip' -> %s \n", basename(test_c));
return ;
}
代码片段二:
/* 获取 给定路径的目录部分
* example:
* dirname("/usr/test/hello.c");
*'/usr/test'
* dirname("/usr/bin");
* '/usr"
*/ #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <libgen.h>
#include <sys/stat.h> int main(int argc, char *argv[]) {
char *test_a = "/usr/bin";
char *test_b = "/sdcard/miui_recovery/backup/blobs";
char *test_c = "/sdcard/update-signed.zip";
printf("Test 1: '/usr/bin' - > %s \n", dirname(test_a));
printf("Test 2: '/sdcard/miui_recovery/backup/blobs' -> %s \n", dirname(test_b));
printf("Test 3: '/sdcard/update-signed.zip' -> %s \n", dirname(test_c));
return ;
}
basename, dirname 在C语言中的使用的更多相关文章
- linux学习笔记之 basename, dirname
前言: basename: 用于打印目录或者文件的基本名称 dirname: 去除文件名中的非目录部分,仅显示与目录有关的内容.dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部 ...
- [sh]basename&dirname截取路径和文件名&case参数选项
给出全路径,取出路径和文件名 basename使用示例 http://codingstandards.iteye.com/blog/840784 示例一 [root@web ~]# basename ...
- 001PHP文件处理——文件处理disk_total_space disk_free_space basename dirname file_exists filetype
<?php /** * 文件处理disk_total_space disk_free_space basename dirname file_exists filetype */ //disk_ ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Java语言中的面向对象特性总结
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
- python语言中的编码问题
在编程的过程当中,常常会遇到莫名其妙的乱码问题.很多人选择出了问题直接在网上找答案,把别人的例子照搬过来,这是快速解决问题的一个好办法.然而,作为一个严谨求实的开发者,如果不从源头上彻底理解乱码产生的 ...
- 在C语言中利用PCRE实现正则表达式
1. PCRE简介 2. 正则表达式定义 3. PCRE正则表达式的定义 4. PCRE的函数简介 5. 使用PCRE在C语言中实现正则表达式的解析 6. PCRE函数在C语言中的使用小例子 1. P ...
- C语言中函数声明实现的位置
在学习C语言的时候我遇到了这么个事情,因为之前先学习的C#,在C#编译器中,函数的声明位置不会影响编译的结果,但是在C语言中却发生了错误 先看一段代码: #include <stdio.h> ...
- C语言中的栈和堆
原文出处<http://blog.csdn.net/xiayufeng520/article/details/45956305#t0> 栈内存由编译器分配和释放,堆内存由程序分配和释放. ...
随机推荐
- Android - JNI静态(static)载入OpenCV
JNI静态(static)载入OpenCV 本文地址: http://blog.csdn.net/caroline_wendy 步骤: 1. 准备OpenCV-Android库 复制OpenCV的sd ...
- Android开发周报:Flyme OS开源、经典开源项目解析
Android开发周报:Flyme OS开源.经典开源项目解析 新闻 <魅族Flyme OS源码上线Github> :近日魅族正式发布了MX5,并且在发布会上,魅族还宣布Flyme OS开 ...
- hdu 1392(凸包)
传送门:Surround the Trees 题意:求凸包的周长. 分析:凸包模板题,先按极角排好序后,然后根据叉积正负确定凸包. #include <stdio.h> #include ...
- MATLAB——scatter的简单应用
scatter可用于描绘散点图. 1.scatter(X,Y) X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈. 样例: X = [1:10]; Y = X ...
- centos 更改hostname
vim /etc/hosts vim /etc/sysconfig/network hostname hostname mlzboy-centos63
- Linux/UNIX之信号(2)
信号(2) sigaction函数 sigaction函数的功能是检查或改动与制定信号相关联的处理动作.此函数代替了signal函数. #include <signal.h> int si ...
- 敏捷开发-Scrum 真实
近期研究前 Scrum 数据编译的文件,在接下来的团队和项目开发.项目根据该引入 Scrum 一些练习,提高团队成员和项目之间的交付质量的合作. 参考资料: <轻松Scrum之旅-敏捷开发故事& ...
- poj3278(bfs)
题目链接:http://poj.org/problem?id=3278 分析:广搜,每次三种情况枚举一下,太水不多说了. #include <cstdio> #include <cs ...
- Linux Shell脚本入门--grep命令详解
grep简介<摘自鸟哥,并加以整理.> grep (global search regular expression(RE) and print out the line,全面搜索正则表达 ...
- 向日葵sunlogin配置
客户端配置: xxxx@TIM sunlogin_linux_1.0.0.25020]$ lsbin html install_sunlogin.sh readme.txt script u ...