逆引きUNIXコマンド/標準エラー出力をファイルに出力する方法
の編集
Top
/
逆引きUNIXコマンド
/
標準エラー出力をファイルに出力する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) *標準エラー出力をファイルに出力する方法 [#f7f566da] コマンドなどの出力結果をリダイレクトで出力すると標準エラー出力はターミナルに出力されたりファイルには保存されません。~ 以下、標準エラー出力に出力されたメッセージをファイルに保存する方法を記します。~ #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連資料 [#rc82e41a] -[[2>&1をでバックグラウンド実行の&は何処に記述する?>逆引きUNIXコマンド/2>&1をでバックグラウンド実行の&は何処に記述する?]] -[[echoコマンドの出力を標準エラー(stderr)に出力する方法>逆引きUNIXコマンド/echoコマンドの出力を標準エラー(stderr)に出力する方法]] -[[teeコマンドでstderr(標準エラー)も対象にする>逆引きUNIXコマンド/teeコマンドでstderr(標準エラー)も対象にする]] *テストコード [#he81dfad] 以下に記す簡単なC言語のサンプルソースを作りました。 #ref(std.c) #include <stdio.h> int main() { fprintf(stdout, "stdut MESSAGE\n"); fprintf(stderr, "stderr MESSAGE\n"); return 0; } -コンパイル 以下のコマンドでコンパイルすると実行ファイルstdが作成されます。 gcc std.c -o std #ref(stderr-01.png) #br -ターミナルで実際に実行させてみます。 下図の通り、ターミナル上にstdout, stderrともに出力されます。 #ref(stderr-02.png) *実験(実行例) [#q7ba8320] 以下の実験で使用したシェルはbashになります。cshでは意図した動作になりませんのでご注意ください。 **標準出力と標準エラー出力を別々のファイルに出力する [#xbc7f0ef] 以下の例では、標準出力をstdout.txtファイルに出力し標準エラー出力をstderr.txtファイルに出力します。~ 1(省略可)が標準出力を示し、2が標準エラー出力を示しています。 ./std 1> stdout.txt 2> stderr.txt or ./std > stdout.txt 2> stderr.txt #ref(stderr-03.png) **標準エラーのみファイルに出力する [#ube6d232] 以下の例では標準エラー出力のみstderr.txtに出力し標準出力はターミナルに表示します。 ./std 2> stderr.txt #ref(stderr-04.png) **標準出力と標準エラー出力をおなじファイルに出力する [#n9435b46] 以下の例では、標準出力、標準エラー出力を同じファイルに出力します。 ./std > output.txt 2>&1 #ref(stderr-05.png) **cshで標準出力、標準エラー出力を同じファイルに出力する方法 [#m3d14731] ./std >& output.txt #ref(stderr-06.png) #br #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html) #br
タイムスタンプを変更しない
#navi(../) *標準エラー出力をファイルに出力する方法 [#f7f566da] コマンドなどの出力結果をリダイレクトで出力すると標準エラー出力はターミナルに出力されたりファイルには保存されません。~ 以下、標準エラー出力に出力されたメッセージをファイルに保存する方法を記します。~ #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連資料 [#rc82e41a] -[[2>&1をでバックグラウンド実行の&は何処に記述する?>逆引きUNIXコマンド/2>&1をでバックグラウンド実行の&は何処に記述する?]] -[[echoコマンドの出力を標準エラー(stderr)に出力する方法>逆引きUNIXコマンド/echoコマンドの出力を標準エラー(stderr)に出力する方法]] -[[teeコマンドでstderr(標準エラー)も対象にする>逆引きUNIXコマンド/teeコマンドでstderr(標準エラー)も対象にする]] *テストコード [#he81dfad] 以下に記す簡単なC言語のサンプルソースを作りました。 #ref(std.c) #include <stdio.h> int main() { fprintf(stdout, "stdut MESSAGE\n"); fprintf(stderr, "stderr MESSAGE\n"); return 0; } -コンパイル 以下のコマンドでコンパイルすると実行ファイルstdが作成されます。 gcc std.c -o std #ref(stderr-01.png) #br -ターミナルで実際に実行させてみます。 下図の通り、ターミナル上にstdout, stderrともに出力されます。 #ref(stderr-02.png) *実験(実行例) [#q7ba8320] 以下の実験で使用したシェルはbashになります。cshでは意図した動作になりませんのでご注意ください。 **標準出力と標準エラー出力を別々のファイルに出力する [#xbc7f0ef] 以下の例では、標準出力をstdout.txtファイルに出力し標準エラー出力をstderr.txtファイルに出力します。~ 1(省略可)が標準出力を示し、2が標準エラー出力を示しています。 ./std 1> stdout.txt 2> stderr.txt or ./std > stdout.txt 2> stderr.txt #ref(stderr-03.png) **標準エラーのみファイルに出力する [#ube6d232] 以下の例では標準エラー出力のみstderr.txtに出力し標準出力はターミナルに表示します。 ./std 2> stderr.txt #ref(stderr-04.png) **標準出力と標準エラー出力をおなじファイルに出力する [#n9435b46] 以下の例では、標準出力、標準エラー出力を同じファイルに出力します。 ./std > output.txt 2>&1 #ref(stderr-05.png) **cshで標準出力、標準エラー出力を同じファイルに出力する方法 [#m3d14731] ./std >& output.txt #ref(stderr-06.png) #br #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html) #br
テキスト整形のルールを表示する
添付ファイル:
std.c
512件
[
詳細
]
stderr-01.png
582件
[
詳細
]
stderr-03.png
692件
[
詳細
]
stderr-05.png
653件
[
詳細
]
stderr-06.png
586件
[
詳細
]
stderr-02.png
619件
[
詳細
]
stderr-04.png
688件
[
詳細
]