gpt4 book ai didi

c - 如何在 Linux 下获取 C 中的原始命令行?

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:14 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的 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);
}

这种方法有几个问题。首先,我必须在每个参数后手动插入一个空格。其次,像这样的原始命令上的 qouting 丢失了,所以输入如下:

./argvdump "'something'" """'"'""""other things""""'"'"""

我得到这样的输出:

./argvdump something other things

这对于调试不是很有用,因为我看不到命令​​行上的实际内容。

有谁知道如何获取实际的原始命令行?

最佳答案

操作系统(或更具体地说是外壳)是执行删除空格和引号等操作的部分。无法重建包括所有这些工件在内的整个命令行。

你可以假设如果 argv 成员包含一个空格,那么它最初有引号......

关于c - 如何在 Linux 下获取 C 中的原始命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19673331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com