【发布时间】:2015-05-23 22:15:22
【问题描述】:
这是一个任务。我是 unix 编程的新手,可以使用一些帮助。我需要创建一个执行以下操作的 C 程序:
在 main() 函数中,它使用 pipe() 函数创建一个管道,然后使用 fork() 创建两个子进程。 Child 1 将 stdout 重定向到管道的写入端,然后使用 execlp() 执行“ps -aux”命令。 Child 2 将其输入从标准输入重定向到管道的读取端,然后执行“sort -r -n -k 5”命令。 创建两个子进程后,父进程等待它们终止,然后才能退出。 请注意,您可能必须先创建子 2,然后再创建子 1。 父程序与运行命令“ps -aux | sort -r -n -k 5”的 shell 执行相同的操作。您必须使用 fork()、pipe()、dup2()、close()、execlp() 函数(或其他 exec() 变体)。
我是一名大四的 CS 学生,并且非常精通 Windows 编程,所以我不是在寻求解决方案,只是对具体需要做什么以及各种命令的含义进行翻译。
谢谢
【问题讨论】:
-
在 Linux 中,了解命令功能的标准方法是阅读“手册页”。来自 shell 类型
man <command>。同样适用于(大多数)库函数。手册页也可在线获得,因此如果您愿意,可以在浏览器中搜索。 -
您可以在
man页面中找到所有“命令”(我认为您的意思是“函数”)。如果您无法开始作业,请向您的讲师寻求帮助。作为一名大四的 CS 学生,您现在应该知道如何联系该讲师了。我们很乐意帮助完成作业,只要他们符合help center 中的标准:请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作总结,以及描述您在解决它时遇到的困难。 您要求获得 *nix 系统的 C 编程教程。