【问题标题】:C program that executes command with argument from argv and print command output and pids使用来自 argv 的参数执行命令并打印命令输出和 pid 的 C 程序
【发布时间】:2020-08-09 21:59:06
【问题描述】:

我是 C 新手,并试图弄清楚我是如何实现以下目标的:

./mycprog uname -r
5.3.0-42-generic
1234,5678

其中1234mycprog 的pid,5678uname 的pid

谢谢, 兹维

【问题讨论】:

  • 您需要给我们更多的帮助,更具体地告诉我们您可以做哪些部分以及您有哪些困难。您知道如何使用forkexec吗?你知道如何等待子进程吗?你知道如何获取当前进程的id吗?

标签: c linux


【解决方案1】:

argv 是一个字符串数组,每个字符串都包含一个命令行参数,包括程序的名称,在您的情况下:

argv[0]  ./mycprog 
argv[1]  uname 
argv[2]  -r

argc 计算参数的数量,在您的情况下为 3。

您可以随意使用它们。如果您遇到问题,您可以在网站上找到有关如何使用这些的大量文档,例如Regarding 'main(int argc, char *argv[])'

为了实现您的需要,我会为您指出:

getpid()获取程序的pid。

getuid()获取用户ID。

getopt() 也是解析命令行参数的好选择。

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多