如何在Mac OS X上获取运行程序的命令行?

时间:2016-07-07 08:32:13

标签: c++ c macos command-line

我想要一个实用程序函数,它返回调用它的程序的完整命令行。换句话说,

std::string cmd_line();

int main(int argc, char**argv)
{
   std::cout << "the current program command line is \""
             << cmd_line() << "\"\n";
}
c++ -o my_program test.cc编译的

(或等效的C程序)应该在my_program x=7

运行时产生
the current program command line is "my_program x=7"

现在,在linux下,我设法从/proc/pid/cmdline开始,pid获取getpid()(来自unistd.h)。在Mac OS下我该怎么办?有更便携的方式吗?

注意1在编辑中添加在上面的示例中,当然可以简单地使用argv[]。但我希望cmd_line()可以从第三方库函数中使用,而无需argv[]的知识。因此,需要在初始化时向提供argv[]的库提供cmd_line()信息。可以做到,但有点麻烦。我正在寻找一种方法来利用运行时系统本身的程序初始化。

注释2在编辑中添加获取正在运行的可执行文件的(绝对或相对)路径的相关问题是this SO question的主题。

0 个答案:

没有答案