我需要创建一个程序,它接受来自用户的输入并执行它,就像它在终端中一样。我正在使用execvp()
函数来达到此目的。该计划的要求是不断接受用户的输入,除非遇到quit
调用。这里的问题是在拨打execvp()
之后替换当前程序。因此,使用goto
也不是一个选项。我发现这篇文章Fork–exec,但它没有说明如何创建无限数量的进程。这里是我的代码:如何在C中执行多个进程?
#include <unistd.h>
#include <stdio.h>
#include <string.h>
void main() {
char *args[4];
char inputCommand[100];
fgets (inputCommand, 100, stdin);
printf ("Splitting string \"%s\" into tokens:\n",inputCommand);
/* Perfrom string tokenization here */
execvp(args[0], args);
}
什么是bash的具体关于这个问题呢? (如果答案是“无”,为什么它有标签?) –
...使用'execvp'不通过shell,所以你避免了相同的开销和风险。 –
你是否熟悉while循环?这就是无限期地重复任何*任务的方式。 Fork-exec也不例外。 – ruakh