Я хочу создать программу, которая выполняет программы из основного аргумента. Предположим, у меня есть программа progr1.c
и progr2.c
работает. Теперь я скомпилирую программу progr3.c
, используя две другие программы в качестве аргументов. Это должно быть результатом:Выполнение программ из главного аргумента
./progr3 progr1 progr2
Результат progr1
Результат progr2
Это то, что я сделал до сих пор:
void main (int args , char **s) {
int i , x , status;
if (args >= 2) {
x = fork();
for (i = 1 ; i < args ; i++) {
if (x == 0) {
execv (s[1],s);
}
else
{
wait (&status);
_exit(i);
}
x= fork();
}
}
_exit(0);
}
Этот код только выводит первую программу аргументов. Поэтому я думаю, что fork()
и execv()
работают не так, как я хотел. Как я могу изменить программу, чтобы делать то, что хочу?
[ 'INT основной()'] (http://c-faq.com/ansi/voidmainbooks.html) –