【问题标题】:C program that makes use of the system calls for creating processes利用系统调用创建进程的 C 程序
【发布时间】:2011-08-17 18:48:36
【问题描述】:

我想制作一个使用系统调用创建的 C 程序 过程。程序应该从命令行接收一个未确定的数字 根据用户输入的选项并行或顺序执行 Linux 命令。

executeCommand [-p|-s] comand1 comand2

其中 p - 并行(对于每个命令,父进程必须创建一个执行相应命令的子进程。)

和s - 序列(父进程应该为每个执行的命令创建子进程,但是运行第二个命令的进程将必须等待运行该命令的进程完成第一个和第三个命令将不得不等待第二次执行结束等)

所以基本上我希望那个用户做类似的事情

./executeCommand -p ls\ -lisa cat\ fork.c

#include<stdio.h>
int main(int argc, char *argv[]){

execl("/bin/ls","ls",NULL);

}

一些提示将不胜感激!

【问题讨论】:

  • 告诉shell处理这一切不是更容易吗?
  • 这听起来很像我的作业...你试过man execl吗?

标签: c linux unix os.execl


【解决方案1】:

如上所述,fork、wait 和 exec 系列应该足以让您实现 mini-shell。

对于高级命令行参数解析,你可以看看getopt

这是一个教程的链接: Parsing Program Arguments

【讨论】:

    【解决方案2】:

    您需要fork。您需要不同类型的execwait 调用。

    这些系统调用应该就是你所需要的。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2013-06-17
      • 1970-01-01
      • 2023-03-08
      • 2022-01-02
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多