SolarisをターゲットとするC言語の開発をしなくてはいけなくなりました。
ところが、Solaris環境がないためとりあえずCygwinで開発を行っています。
そこで、まず既存の部分を動作させたいのですが、子プロセスの生成にfork1()を使用していてコンパイルエラーになります。
このfork1()とfork()の違いがわかるかたいたら教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

手元の Solaris 8 のマニュアルを読んでみたところ Solaris のスレッドには Solarisモデルと POSIXモデルがあるということで,


・pthread をリンクすると POSIXモデルになる. このときには fork を使う
・thread をリンクすると Solarisモデルになる. このときには fork1 を使う
ようです. まあ pthread をリンクして fork を使うことにした方が安全じゃないでしょうか.
ちなみに POSIXモデルで fork1 を使ったり Solarisモデルで fork を使うこともできます. 子プロセスが exec を呼出すだけなら問題ないようですが, それを超えると子プロセスでデッドロックする可能性もあるとか.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
とりあえずコンパイルできればいいのでpthreadをリンクしました。
たいへん助かりました。

お礼日時:2005/07/15 01:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報