函数原型使用man 3 basename可以查看到. 从中可以看出,这个函数和dirname函数联系非常紧密.


下面是相关的源码示例

//gcc -g basename_demo.c -o basename_demo
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libgen.h>

int main(int argc, char* argv[]){
    char* p;
    //p = basename("htttp://www.youku.com/1.mp4/");
    //p = basename("htttp://www.youku.com/1.mp4/"); //会有段错误
    p = basename("htttp://www.youku.com/1.mp4?start=0&end=90");
    printf("%s\n", p);

    //这是官网的例子
    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;
}

测试中发现,如果路径不加上文件名, 就会报段错误; 如果文件名后面有参数之类的,还是会照常解析出来.参看下面的截图.


源码中给出的man中的例子的效果如图:


参考文献

[1].http://os.51cto.com/art/201108/286576.htm

[2].http://blog.csdn.net/Draven_Liu/article/details/38235585

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐