C 是否可以在没有路径的情况下使用可执行文件的名称?

C 是否可以在没有路径的情况下使用可执行文件的名称?,c,command-line,command-line-arguments,C,Command Line,Command Line Arguments,您好,我尝试使用可执行文件的名称和用法字符串,我使用argv[0]用于此目的,但它提供了指向它的完整路径,而不是可执行文件本身的名称 有没有办法只获取可执行文件名?使用句柄参数为0的GetModuleFileName据我所知,在linux上,至少您只需要自己从字符*中提取可执行文件名 最简单的方法是使用basenameargv[0],您可以通过包含libgen.h来获得它。只需使用路径字符串的最后一部分。调用strrchr get last path delimiter和strcpy等的组合,将

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


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

使用句柄参数为0的GetModuleFileName

据我所知,在linux上,至少您只需要自己从字符*中提取可执行文件名


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

只需使用路径字符串的最后一部分。调用strrchr get last path delimiter和strcpy等的组合,将零件从last path delimiter复制到end,只需搜索last/

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

如果它在您的平台上可用,则有一个函数char*basenamechar*path。请参阅。

如果程序名由操作系统设置,则可以使用getprogname。

呃,您的意思是像标准C库中的basename一样;它不是标准的C语言。它在POSIX中。只有在他只想在Windows上编译的情况下