我正在尝试创建一个简单的C程序来转储原始命令行,以调试调用其他程序的程序的输出。以下是我目前的代码:
#include <stdio.h>
int main (int argc, char **argv)
{
int i;
for (i = 0; i < argc; i++)
fprintf (stderr, "%s ", argv[i]);
fputs ("\n", stderr);
return (0);
}
这种方法有几个问题。首先,我必须在每个参数后手动插入一个空格。其次,原始命令中的引号会丢失,因此输入如下所示:
./argvdump "'something'" """'"'""""other things""""'"'"""
I get output like this:
./argvdump something other things
这对于调试来说并不是非常有用,因为我无法看到实际在命令行上的内容。
有人知道如何获取实际的原始命令行吗?