
私はソースコードを分析するためにcppcheckツールを使用しています。
gccコンパイラのシェルプロンプトで次のコマンドを発行しました。
$ cppcheck abc.cpp
出力は次のとおりです
checking abc.cpp...
(error) Possible null pointer dereference: <var> - otherwise it is redundant to check if <var> is null at line 100
segmentation fault
この出力をファイルとして保存したいので、以下のようにコマンドを発行しました。
$ cppcheck abc.cpp 2> abc.txt
しかし、abc.txtファイルの内容は次のとおりです。
checking abc.cpp...
最初の行だけを保存し、abc.txtファイルに主要なエラー部分がありません。
ファイルのすべての出力行を取得するには、どのコマンドを使用する必要がありますか? cppcheckのツールマニュアルは次のとおりです。ここ。
答え1
2
コマンドから削除され、>
リダイレクト演算子としてのみ使用されます。
を使用すると、2>
エラーストリーム(STDERR)をファイルにリダイレクトできます。必要なのは、通常の出力ストリーム(STDOUT)のようです。
cppcheck abc.cpp > abc.txt
欲しいなら両方ファイルにアクセスするには、次のように2(エラーストリーム)を1(標準出力ストリーム)にリンクします。
cppcheck abc.cpp > abc.txt 2>&1
または使用提案されたショートカット構文すべてをつかむ
答え2
stdoutとstderrをファイルにリダイレクトする必要があるかもしれません。
cppcheck abc.cpp &>abc.txt
答え3
ケイロップが正しかった>使用については、tee
ファイルに保存しながらログを表示するには、このコマンドを使用することもできます。
cppcheck abc.cpp | tee my.file.txt
また、2>&1 と一緒に使用する必要があります。
cppcheck abc.cpp 2>&1 | tee my.file.txt