вызвать main (argc, argv) из fork ()

Поиском по поводу вызова main в основном ничего не найдено — так что я собираюсь догадаться, что этот вопрос по сути «выключен».

Предлагаемые вопросы обеспечивают это C # вопрос «Вызов Main () из другого класса» ответ таков: не используйте подфункцию Main () и вызывайте ее; поэтому я предполагаю, что тот же ответ применим и к fork ().

void somefunction ()
{
pid_t  pid;
pid = fork();

if (pid == 0) {

char *p;
char *argv[] = { (char*)spawn_count, (char*)gradiant, (char*)i, (char*)(i+spread), p };
main(5, **argv);
}
else if (pid == -1)
cout << "ERROR: can't fork" << endl;

else ; //PID == 1,
}

Это компилируется в g ++ с "error: 'main' was not declared in this scope"

Вопросы:

  • Как main(argc, argv) область видимости? Я могу следовать процесс в окнах с LPTSTR,
  • После fork(), чтобы начать ребенка с main()Как это сделать?
  • После fork()где находится ребенок, в той же функции, что и ребенок, в main?

0

Решение

Почему вы хотите позвонить на главную?
Не могли бы вы просто раскошелиться на что-то вроде ниже:

int main()
{
pid_t  pid;
pid = fork();

if(pid < 0 )
{
// Error some issue forking
}
if (pid == 0) {
// Child related processing here
}
else {
// parent related processing here
}
}

Fork возвращает дважды, один раз для родителя и один раз для потомка, и в ту же точку, откуда был сделан системный вызов fork.

Вы можете обратиться по этой ссылке, чтобы узнать больше: http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html

1

Другие решения

Для тех, кто попадает в ту же ловушку, что и я, параллельная обработка Linux и Windows работает совсем по-разному.

  • В Windows вы снова вызываете программу и передаете аргументы через main ()
  • В Linux вы вызываете fork (), а затем вызываете любую функцию из вашей программы, как и любую другую функцию. Этот подход очень прост по сравнению с «дерьмом», через которое вы проходите, разворачивая окна.

Поняв это различие, я сразу удалил окна с моего ноутбука и установил Linux 🙂

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector