0

嗨,我正在尝试使用可执行文件的名称和使用字符串,我正在argv[0]为此目的使用,但它不是可执行文件本身的名称,而是它给了我完整的路径。

有没有办法只获取可执行文件名?

4

6 回答 6

4

只需搜索最后一个 /。

const char *exename = strrchr(argv[0], '/');
if (exename)
    // skip past the last /
    ++exename;   
else
    exename = argv[0];   
于 2009-11-20T18:38:00.073 回答
3

据我所知,(至少在 linux 上)您只需要自己从 char* 中提取可执行文件名即可。

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

于 2009-11-20T18:34:29.783 回答
1

如果它在您的平台上可用,则有一个函数char *basename(char *path). 请参阅基本名称文档

于 2009-11-20T18:45:20.340 回答
0

使用 GetModuleFileName http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspx与句柄参数 = 0

于 2009-11-20T18:33:12.283 回答
0

只需使用路径字符串的最后一部分。strrchr调用(获取最后一个路径定界符)和例如或类似的某种组合,以将最后一个路径定界符strcpy的部分复制到结束

于 2009-11-20T18:37:05.240 回答
0

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

于 2011-03-04T18:09:08.713 回答