是否有可能没有路径的可执行文件的名称?

时间:2009-11-20 18:30:10

标签: c command-line command-line-arguments

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

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

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

只搜索最后一个/.

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

答案 2 :(得分:1)

如果您的平台上有该功能,则会有一个功能char *basename(char *path)。请参阅basename documentation

答案 3 :(得分:0)

使用带有handle参数= 0

的GetModuleFileName http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspx

答案 4 :(得分:0)

只需使用路径字符串的最后一部分。调用strrchr(获取最后路径分隔符)和strcpy或类似的,将部分从最后一个路径分隔符复制到结束

答案 5 :(得分:0)

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