【发布时间】:2012-12-12 03:06:36
【问题描述】:
与 Linux 等效的 GetCommandLine 和 CommandLineToArgv 类似的问题
是否可以在 linux 中获取 raw 命令行?文件 /proc/self/cmdline 被销毁。
./a.out files="file 1","file 2" param="2"
打印
./a.outfiles=file 1,file 2param=2
这是垃圾
转义命令行确实适用于除第一个以外的所有参数。
./a.out files=\"fil 1\",\"fil 2\"\ param=\"2\"
打印
./a.outfiles="fil1","fil2" param="2"
【问题讨论】:
-
如何在参数之间输出一个空格
-
似乎参数用 0 字节分隔并删除了引号。
cat /proc/self/cmdline | tr '\000' ' '返回cat /proc/self/cmdline -
并且
/proc/self/cmdline不包含“原始”命令行;它包含与argv完全相同的信息。 -
这是 Windows 和 UNIX 之间的根本区别之一。这两种方法从根本上来说都没有对错,它们都有不同的优点和缺点。
标签: c++ c linux windows equivalent