system関数で必ずエラーになる(-1)

system関数で外部スクリプトを実行したり、コマンドを実行したりしますが、毎回戻り値が-1になっている事がありました。 調べてみると、-1はサブシェルが起動できないか、結果を取得できない時とのこと。 原因は... SIGCHLDを無視していたからでした。 具体的には、コードで以下のようにしていました。 ```c `gutter:true; signal(SIGCHLD, SIG_IGN); ``` シグナルSIGCHLDを無視していたので、system関数のなかでもシグナルを受ける事ができずに-1が帰っているみたいでした。 これは気づかないとはまってしまうので、注意です。

0 件のコメント :

コメントを投稿