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> 栈内存由编译器分配和释放,堆内存由程序分配和释放. ...
随机推荐
- A Game of Thrones(20) - Eddard
Eddard Stark rode through the towering bronze doors of the Red Keep sore, tired, hungry, and irritab ...
- POJ 3189 Steady Cow Assignment【网络流】
题意:每个奶牛对所有的牛棚有个排名(根据喜欢程度排的),每个牛棚能够入住的牛的数量有个上限,重新给牛分配牛棚,使牛棚在牛心中的排名差(所有牛中最大排名和最小排名之差)最小. 牛棚个数最多为20,那么直 ...
- 数字雨Shopex 4.8.5 SQL Injection Exp
# -*- coding:utf-8 -* #Author:MXi4oyu #Email:798033502@qq.com #Shopex 4.8.5 SQL Injection Exp #转载请说明 ...
- phpc.sinaapp.com 加密的解密方法
原文:phpc.sinaapp.com 加密的解密方法 很简单,用类似phpjm的解密方式,替换掉_inc.php中最后一个return中的eval为print就出来了.
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- iOS安全攻击和防御(24):敏感的保护方案逻辑(1)
iOS安全攻击和防御(24):敏感的保护方案逻辑(1) Objective-C代码easy被hook.暴露信息太赤裸裸,为了安全,改用C来写吧! 当然不是所有代码都要C来写,我指的是敏感业务逻辑代码. ...
- ubuntu 经常使用软件及环境
安装完系统后,更新系统 sudo apt-get update # 更新源索引 sudo apt-get dist-upgrade # 更新系统 sudo apt-get autoremove 1安装 ...
- GitHub基本操作(转)
一.上传代码到仓库 步骤一:创建本地仓库,如下: 创建结果: 步骤二:发布自己创建的仓库,如下: 发布完显示如下: 步骤三:向自己发布仓库上传代码,如下: 首先将代码复制到本地仓库,如下: 复制完,显 ...
- Music Studio项目心得--JNI实现C++调用JAVA
这个项目是我參加内蒙古挑战杯的比赛项目,因为时间关系,我没时间实现OpenOMR开源项目由JAVA全然向C++的转换,经过我半个多月的尝试,我将OpenOMR中的1/3的代码改写成C++,只是非常快我 ...
- C++实现链栈的基本操作
之前对顺序栈写了基本操作,认为有必要也动手练练栈的链表实现. 对于链栈,一般不会出现栈满的情况. 链栈头文件定义例如以下: #ifndef CSTOCK_H_ #define CSTOCK_H_ ty ...