通过搜索调用main主要没有找到任何东西 - 所以我猜这个问题基本上是'关闭'。
建议的问题提供了这个C# question "Calling Main() from another class"答案,你没有,在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
跟踪process in windows。fork()
之后,要从main()
启动孩子,这是怎么做到的?fork()
之后,孩子在哪里,在main中调用child的同一个函数?答案 0 :(得分:1)
你为什么要打电话给主? 你能不能只用下面的主要内容:
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 :(得分:-1)
对于任何陷入同样陷阱的人 - Linux和Windows并行处理的工作方式非常不同。
在理解了这一区别之后,我立即从笔记本电脑中删除了Windows并安装了Linux:)