プロが教えるわが家の防犯対策術!

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

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が見つからない時は、教えて!gooで質問しましょう!