Преобразование программы из c в bash скрипт - PullRequest
2 голосов
/ 06 апреля 2010

Я создал небольшую программу на языке C. Эта программа создает некоторые дочерние процессы с помощью функции fork (). Количество создаваемых процессов указывается в качестве первого аргумента консоли. Я хотел бы, чтобы кто-нибудь помог мне преобразовать эту программу из скрипта в bash.

/* The first argument is the amount of the procceses to be created*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main(int argc, char **argv)
{
    int  pid,i;
    int pnumber;
    pnumber=atoi(argv[1]);//Converting the first arg to int so i can put in for loop
    for(i=1;i<=pnumber;i++){
        pid=fork();// Creating the child procceses with fork

        if(pid!=0)  { //The child procces prints its id and then exit
             printf("The id the created proccess is:%d  and it is a child proccess \n",pid);
             printf("RETURN\n");
             exit(1);
        }                    
    }
}

Ответы [ 2 ]

2 голосов
/ 06 апреля 2010

fork () - системный вызов, который используется скомпилированными программами для создания другого процесса.Там нет необходимости в сценарии оболочки.Вы можете просто использовать

myscript.sh &

в своем скрипте, чтобы начать новый процесс.

2 голосов
/ 06 апреля 2010
#!/bin/bash

if [ -z $1 ]; then
   echo "I am child"
   exit 0
fi

for i in `seq $1`; do
    $0 &
    echo "The PID of just spawned child is: $!"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...