android源码函数学习之basename与dirname
2017-09-25 10:49
656 查看
在阅读init.cpp源码的时候遇到该函数,小节一下:
通过命令:man 3 basename
basename()返回的是指向文件名指针;
dirname()返回的是指向目录指针;
比如:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libgen.h>
int main(int argc, char* argv[]){
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 0;
}运行后:
可以看到结果:dirname 是最后“/”之前的指向指针,basename是指向文件名指针
注:strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现,不然会造成内存泄露。返回一个指针,指向为复制字符串分配的空间;如果分配空间失败
通过命令:man 3 basename
basename()返回的是指向文件名指针;
dirname()返回的是指向目录指针;
比如:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libgen.h>
int main(int argc, char* argv[]){
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 0;
}运行后:
可以看到结果:dirname 是最后“/”之前的指向指针,basename是指向文件名指针
注:strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现,不然会造成内存泄露。返回一个指针,指向为复制字符串分配的空间;如果分配空间失败
相关文章推荐
- PHP basename()、dirname()、pathinfo()函数在linux环境下的注意事项
- Android 学习笔记之AndBase框架学习(三) 使用封装好的函数完成Http请求..
- Android 学习笔记之AndBase框架学习(四) 使用封装好的函数实现单,多线程任务
- jQuery1.3.2 源码学习-8 index 函数
- Android2.1消息应用(Messaging)源码学习笔记
- Android源码学习之三-Activity是如何进行自动化测试的
- Android源码学习之一-Activity是如何实现主题变化的
- Prototype学习——工具函数($H,$R,Try.these,document.getElementsByClassName)
- Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的
- Android源码学习之六——ActivityManager框架解析
- Android源码学习之五-Android的IPC机制
- Android Animation学习笔记--附带源码
- Android Animation学习笔记--附带源码
- (转)Android Animation学习笔记--附带源码
- Android源码学习之一-Activity是如何实现主题变化的
- sql cast、 convert、QUOTENAME、exec 函数学习记录
- What does dirname(__FILE__) and basename(dirname(__FILE__)) do?
- sql cast,convert,QUOTENAME,exec 函数学习记录
- Android源码学习之一-Activity是如何实现主题变化的
- sql cast,convert,QUOTENAME,exec 函数学习记录