LINUX.ORG.RU

fork()


0

0

Как можно задавать определённый код(на C) дочерниму процессу ? Имею ввиду, я создаю процесс (дочерний) через fork() как я могу ему задать определённый код для выполнения в бэк граунде т,е, чтобы он выполнялся отдельно для того чтобы затем создать ещё n`ое кол-во процессов? прим:(для пояснения вопроса) fork() = ping 192.168.7.86; // должно начать выполнятся затем: fork() = recv(...); fork() = ...; (это всего лишь пример не код) --Очень жду ответа!

anonymous

Re: fork()

man exec

А, скорее,

man system

Извини, но твой вопрос глупый. Из серии "А где тут телегу запрягают?".

"Чтобы задать вопрос, надо знать половину ответа".

Я бы посоветовал почитать что-нибудь про Си и Юникс.

Die-Hard ★★★★★ ()

Re: fork()

не понятен вопрос, если хочешь ответ - сформулируй вопрос.
Ты сам понимаешь постановку задачи?

anonymous ()
Ответ на: Re: fork() от anonymous

fork()

Мне нужно чтобы родительский процесс пародил несколько дочерних и каждый дочерний выполнял данный ему код т.е. я хотел узнать как можно задать определённый код процессу(дочернему)! Спасибо за внимание!

anonymous ()
Ответ на: fork() от anonymous

Re: fork()

Не совсем понятно что значит "данный ему код". 1)Если код во внешнем исполняемом файле, то используйте вызов exec(). 2)Если код в вашей программе в виде отдельной функции, или массива char, то используйте clone() или pthread_create(). Последнее предпочтительней (IMHO).

OxiD ★★★ ()
Ответ на: Re: fork() от OxiD

Re: Re: fork()

Короче через сокет/pipe пихаешь ему строку, он эту строку пихает в system (), и вот тебе и пинг и все отсальное

LONGOBARD ()
Ответ на: Re: Re: fork() от LONGOBARD

Re: Re: Re: fork()

Вот ответ:

// допустим вот функция которую должен выполнять дочерний процесс void my_func(char* ipaddr) { execl("/bin/bash","/bin/bash","-c","ping" ;,ipaddr); }

// а вот как мы это запустим

int main() { int pid, i; for(i=0;i<=100;++i){

pid=fork(); if(!pid){ my_func("127.0.0.1");//это пример, сам подставишь ip exit(0); } } return 0; }

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.