您的位置:首页 > 移动开发 > Android开发

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()函数成对出现,不然会造成内存泄露。返回一个指针,指向为复制字符串分配的空间;如果分配空间失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: