2

シェルスクリプトで使用しているバイナリの1つが、セグメンテーション違反を引き起こしています(戻り値:139)

また、stdoutとstderrの両方をログファイルにリダイレクトしていますが、シェルスクリプトを実行しているときに、セグメンテーション違反のエラーメッセージがターミナルに表示されます。

このメッセージをSegfaultからログファイルにリダイレクトすることは可能ですか?

4

3 に答える 3

2

さて、私は自分の質問に答えています..:)ここで答えを見つけまし たFortran90プログラムでSIGSEGVまたはSIGFPEによる出力を抑制するにはどうすればよいですか?

秘訣は追加することです

`exec 2> filename`  

シェルスクリプトで。

これにより、すべてのメッセージがシェルからログファイルにリダイレクトされます

于 2010-02-24T12:23:33.703 に答える
2

表示されるセグメンテーション違反メッセージは、プログラムを実行しているシェルによって出力されます。この動作はシェルごとに異なるため、いくつか試すことができます(シェルリダイレクトからログにセグメンテーション違反メッセージを取得することを主張する場合)。

# Have sh invoke your program, and redirect output from both sh and your program into logfile
sh -c "program arguments more arguments" >logfile 2>&1
# Force bash to not just exec your program (/bin/true part), and redirect output
# from both bash and your program into logfile
bash -c "/bin/true; program arguments more arguments" >logfile 2>&1
于 2010-02-24T12:12:15.447 に答える
0

試す

./program &> logfile

ここにI/Oリダイレクトに関するさまざまな例があります、見てください

このディスカッションもご覧ください

于 2010-02-24T10:47:48.987 に答える