0

main の呼び出しに関する検索ではほとんど何も見つかりません。したがって、この質問は根本的に「オフ」であると推測します。

提案された質問は、このC# の質問「別のクラスから 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)スコープはどのように設定されていますか? WindowsでプロセスをたどることができますLPTSTR.
  • の後fork()、子を から開始するにmain()は、これはどのように行われますか?
  • の後fork()、メインの子を呼び出したのと同じ関数で、子はどこにありますか?
4

2 に答える 2

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 は、親に対して 1 回、子に対して 1 回、および fork システム コールが行われた同じポイントで 2 回戻ります。

このリンクを参照して詳細を読むことができます: http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html

于 2013-03-20T13:45:18.797 に答える