リダイレクタの stdout と stderr を使用できます。./a.out > output.txt 2> error.txt
しかし、これらはsegmentation faults
。
{ ./a.out < $TEST_DIR'test'$i'.in' > $OUTPUT_DIR/output$i.txt ; } 2> $OUTPUT_DIR/error$i.txt
ただし、コアダンプとスタックスマッシュメッセージはリダイレクトされません。
リダイレクトする方法は?
ベストアンサー1
「セグメントエラー」メッセージは、問題のあるプログラムではなく、シェルによって印刷されます。
&backtrace + memmapメッセージ*** stack smashing detected ***
(少なくとも私のシステムでは)は、スタックガードハンドラによって制御端末に直接印刷されます(_PATH_TTY
/dev/tty
はstdoutまたはstderrに関係なく直接開き、メッセージがそこに書き込まれます)。fortify_fail.cそしてlibc_fatal.cglibcから)。
内容全体をキャプチャするには、script -c './rpneval ...'
script(1) (例:) などを使用してプログラムを実行します。