c++ - 如何在 gcc 编译器的 c/c++ 中获取运行的可执行文件名称

标签 c++ c gcc

<分区>

我的目的是在每个平台(Windows、Mac Os x、Linux)中使用相同的代码获取正在运行的可执行文件的名称。

每个平台都有单独的代码来查找可执行文件的名称。

在 Windows 中有 GetModuleFileName() 函数来获取可执行文件的名称,但它适用于 Visual Studio。

我还使用了argv[0]来获取当前可执行文件的路径。

我正在使用 gcc 编译器,我需要生成适用于所有平台(Windows、Mac Os x、Linux)的代码以获取正在运行的可执行文件的名称。

最佳答案

引用自 C11 标准,第 5.1.2.2.1 章,

If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name; argv[0][0] shall be the null character if the program name is not available from the host environment.[...]

因此,在对 argv[0] 进行空检查后,您可以使用与程序名称相同的名称。

是的,它独立于平台。

关于c++ - 如何在 gcc 编译器的 c/c++ 中获取运行的可执行文件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053701/

相关文章:

c++ - 通过预处理器创建 std::pair<std::string, some_enum>

c++ - undefined reference 错误,即使在链接 c 文件之后

c - 从文本文件中查找不包含元音的单词

c - 具有多个语句和条件的单个循环是否比几个简单的循环更好?

gcc - 使用 avr-gcc 在 C++ 中读取意外的全局变量结果(局部变量访问符合预期)

c++ - 多重继承使私有(private)成员可访问

c++ - 基于模板参数的条件编译时类型映射

c++ - Visual Studio 2012 上的计算机错误中缺少 GDAL201.dll

c++ - 信号和槽是语法糖还是还有更多?

c - FFTW 库 : verifying fourier transform derivative property