0
これをコード化しましたが、これを他の方法で動作させる方法がわかりません。 その正しさをテストする方法のサンプルコードもありがとう。ヘルプSTDOUTとSTDERRをファイル ">&"にリダイレクト
dup2(STDOUT_FILENO, STDERR_FILENO);
dup2(fd, STDOUT_FILENO);
これをコード化しましたが、これを他の方法で動作させる方法がわかりません。 その正しさをテストする方法のサンプルコードもありがとう。ヘルプSTDOUTとSTDERRをファイル ">&"にリダイレクト
dup2(STDOUT_FILENO, STDERR_FILENO);
dup2(fd, STDOUT_FILENO);
ため
おかげであなたは近かったが、あなたは逆の順序で2つのdup2
の呼び出しを行う必要があります。
dup2(fd, STDOUT_FILENO);
dup2(STDOUT_FILENO, STDERR_FILENO);
close(fd);
あなたのコードは、(その構文Bourneシェルに基づいてすべてのシェルで利用可能です)POSIXシェルの構文と同等です:stderr
は古いstdout
中に行かせる
2>&1 >filename
stdout
をファイルにリダイレクトします。
すごい! – soccerkid619
正確性をテストする方法はありますか? – soccerkid619
通常の出力とエラーを生成するプログラムを実行し、そのファイルに両方が含まれていることを確認します。 – Barmar