2016-04-19 22 views

答えて

2

ため

おかげであなたは近かったが、あなたは逆の順序で2つのdup2の呼び出しを行う必要があります。

dup2(fd, STDOUT_FILENO); 
dup2(STDOUT_FILENO, STDERR_FILENO); 
close(fd); 

あなたのコードは、(その構文Bourneシェルに基づいてすべてのシェルで利用可能です)POSIXシェルの構文と同等です:stderr古いstdout中に行かせる

2>&1 >filename 

stdoutをファイルにリダイレクトします。

+0

すごい! – soccerkid619

+0

正確性をテストする方法はありますか? – soccerkid619

+0

通常の出力とエラーを生成するプログラムを実行し、そのファイルに両方が含まれていることを確認します。 – Barmar

関連する問題