- ベストアンサー
fork1()とfork()の違い
SolarisをターゲットとするC言語の開発をしなくてはいけなくなりました。 ところが、Solaris環境がないためとりあえずCygwinで開発を行っています。 そこで、まず既存の部分を動作させたいのですが、子プロセスの生成にfork1()を使用していてコンパイルエラーになります。 このfork1()とfork()の違いがわかるかたいたら教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
手元の Solaris 8 のマニュアルを読んでみたところ Solaris のスレッドには Solarisモデルと POSIXモデルがあるということで, ・pthread をリンクすると POSIXモデルになる. このときには fork を使う ・thread をリンクすると Solarisモデルになる. このときには fork1 を使う ようです. まあ pthread をリンクして fork を使うことにした方が安全じゃないでしょうか. ちなみに POSIXモデルで fork1 を使ったり Solarisモデルで fork を使うこともできます. 子プロセスが exec を呼出すだけなら問題ないようですが, それを超えると子プロセスでデッドロックする可能性もあるとか.
お礼
回答ありがとうございます。 とりあえずコンパイルできればいいのでpthreadをリンクしました。 たいへん助かりました。