2009-11-20 108 views

回答

3

只搜索最后一个/。

const char *exename = strrchr(argv[0], '/'); 
if (exename) 
    // skip past the last/
    ++exename; 
else 
    exename = argv[0]; 
3

据我所知,(在Linux上,至少),你就必须从焦炭中提取自己的可执行文件名*。

最简单的方法是使用basename(argv[0]),你可以通过加入“libgen.h”来获得。

+2

呃,你的意思是像标准C库中的basename()? ;) – SimonJ 2009-11-20 18:37:56

+0

啊,对。我忘了libgen.h是标准的。 – perimosocordiae 2009-11-20 18:44:41

+0

这不是标准C.它在POSIX。 – 2009-11-20 20:00:49

0

只需使用路径字符串的最后部分。对strrchr(获取最后路径分隔符)和例如strcpy或类似的从最后一个路径分隔符复制出来的部分结束

0

如果程序的名称是由您的操作系统设置的,您可以使用getprogname()

相关问题