在main()中获取不带参数的命令行参数

时间:2019-07-25 21:00:18

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

一件奇怪的事使我无法入睡。 。

我有P7库。它是用于编写日志的库。

库包含几个示例。 C ++的示例如下:

int main(int i_iArgC, char* i_pArgV[])
{
   // Some code that don't use i_iArgC or i_pArgV
}

但是程序以某种方式处理命令行参数的技巧。
我玩了一点,以确保这个主叫。
我的工作:

  1. 构建调试并在main上设置断点(以确保 这个main被称为)
  2. main(int i_iArgC, char* i_pArgV[])更改为main()(以确保没有人使用它们)

我不知道怎么可能。

以下是您可以自行查看的最少步骤:

  1. this页(左上方的链接)下载P7代码
  2. 解压缩存档
  3. 运行build.sh(它以某种顺序运行几个makefile)
  4. Cpp_Example文件夹执行Binaries
  5. 再次执行Cpp_Example /P7.Help,以查看该应用对命令行参数的反应。

1 个答案:

答案 0 :(得分:1)

大多数系统都可以在不依赖main()的情况下获取命令行参数。例如,在Windows上,您可以使用GetCommandLineW()

该库具有不可移植的代码,只能在Shared/Platforms/*/PProcess.h中执行该操作。快速浏览Windows_x86/PProcess.h可以发现它使用了GetCommandLineW(),并且Linux_x86/中的同一文件读取了/proc/self/cmdline