Поиском по поводу вызова 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?Почему вы хотите позвонить на главную?
Не могли бы вы просто раскошелиться на что-то вроде ниже:
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
Для тех, кто попадает в ту же ловушку, что и я, параллельная обработка Linux и Windows работает совсем по-разному.
Поняв это различие, я сразу удалил окна с моего ноутбука и установил Linux 🙂