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