函数原型使用man 3 basename可以查看到. 从中可以看出,这个函数和dirname函数联系非常紧密.
下面是相关的源码示例
//gcc -g basename_demo.c -o basename_demo
//#include
#include
#include
#include 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
", 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
", 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
char* Reverse(char* s) {//将q指向字符串最后一个字符char* q = s ;while( *q++ ) ;q -= 2 ; //分配空间,存储逆序后的字符串。char* p = newchar[sizeof(char) * (q - s + 2)] ; char* r = p ;// 逆序存储whil...
二级指针相对于一级指针,显得更难,难在于指针和数组的混合,定义不同类型的二级指针,在使用的时候有着很大的区别 第一种内存模型char *arr[] 若有如下定义 char *arr[] = {"abc", "def", "ghi"}; 这种模型为二级指针的第一种内存模型,在理解的时候应该这样理解:定义了一个指针数组(char *...
今天在弄一下啊小小程序的时候。报错,出现了问题。先看代码 int main(int argc, char* argv[]) {char *filename = "interface_ipset_1_1.json";char* split1 = "_";char* split2 = ".";char splitfile1[4][...
wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....#include
问题的提出:设计一个用于管理朋友信息的程序。将朋友信息(年龄、姓名、电话)存放在MyFrd.dat中,从文件读出这些信息并显示,并能按姓名(要求可简化输入,如只输入姓氏便可查询)进行查询,将查询信息输出屏幕。 1 #include
关于点云的分割算是我想做的机械臂抓取中十分重要的俄一部分,所以首先学习如果使用点云库处理我用kinect获取的点云的数据,本例程也是我自己慢慢修改程序并结合官方API 的解说实现的,其中有很多细节如果直接更改源程序,可能会因为数据类型,或者头文件等各种原因编译不过,会导致我们比较难得找出其中的错误,首先我们看一下我自己设定的一个场景,...
/*
使用正态分布变换进行配准的实验 。其中room_scan1.pcd room_scan2.pcd这些点云包含同一房间360不同视角的扫描数据
*/
#include
#include
#include
#include