是否有可能没有路径的可执行文件的名称?
嗨我试图使用可执行文件的名称和用法字符串,我使用argv[0]
这样的目的,而不是可执行文件本身的名称,它给了我完整的路径。是否有可能没有路径的可执行文件的名称?
有什么办法只获取可执行文件名吗?
只搜索最后一个/。
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last/
++exename;
else
exename = argv[0];
据我所知,(在Linux上,至少),你就必须从焦炭中提取自己的可执行文件名*。
最简单的方法是使用basename(argv[0])
,你可以通过加入“libgen.h”来获得。
呃,你的意思是像标准C库中的basename()? ;) – SimonJ 2009-11-20 18:37:56
啊,对。我忘了libgen.h是标准的。 – perimosocordiae 2009-11-20 18:44:41
这不是标准C.它在POSIX。 – 2009-11-20 20:00:49
只需使用路径字符串的最后部分。对strrchr
(获取最后路径分隔符)和例如strcpy
或类似的从最后一个路径分隔符复制出来的部分结束
如果程序的名称是由您的操作系统设置的,您可以使用getprogname()
。
仅当他只想在Windows上编译时 – tloach 2009-11-20 18:43:59