C-программа, использующая системные вызовы для создания процессов - PullRequest
1 голос
/ 03 мая 2011

Я хочу создать программу на 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);

}

Некоторые советы будут оценены!

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Как уже говорилось выше, для реализации мини-оболочки нужно найти форк, ожидание и семейство exec.

Для расширенного разбора аргументов командной строки вы можете взглянуть на getopt

Вот ссылка на учебник: Аргументы программы синтаксического анализа

0 голосов
/ 03 мая 2011

Вам нужно fork. Вам нужны различные виды вызовов exec и wait.

Эти системные вызовы должны быть всем, что вам нужно.

...