gpt4 book ai didi

c - 如何在 C 程序中设置命令行参数,以便在用户键入 "ps aux"时可见?

转载 作者:太空狗 更新时间:2023-10-29 15:03:02 25 4
gpt4 key购买 nike

当您键入“ps aux”时,ps 命令会显示程序运行时使用的命令参数。一些程序将其更改为指示状态的一种方式。我试过更改 argv[] 字段,但它似乎不起作用。是否有一种标准方法来设置命令行参数,以便在用户键入 ps 时出现它们?

也就是说,这不起作用:

int main(int argc,char **argv)
{
argv[0] = "Hi Mom!";
sleep(100);
}

09:40 imac3:~$ ./x &
[2] 96087
09:40 imac3:~$ ps uxp 96087
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
yv32 96087 0.0 0.0 2426560 324 s001 S 9:40AM 0:00.00 ./x
09:40 imac3:~$ cat x.c

最佳答案

你的想法是对的,但是你没有改变argv[n]中的指针,你必须改变argv[指向的字符串0] 本身:

#include <string.h>
#include <unistd.h>

int main(int argc,char **argv)
{
size_t maxlen = strlen(argv[0]);

memset(argv[0], 0, maxlen);
strncat(argv[0], "Hi Mom!", maxlen);
pause();

return 0;
}

(请注意,这是否实际更改了 ps 显示的命令名称取决于系统)。

关于c - 如何在 C 程序中设置命令行参数,以便在用户键入 "ps aux"时可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760896/

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