我正在使用 cppcheck 工具来分析源代码。
在gcc编译器的shell提示符下,我给出的命令如下
$ cppcheck abc.cpp
Run Code Online (Sandbox Code Playgroud)
输出是
checking abc.cpp...
(error) Possible null pointer dereference: <var> - otherwise it is redundant to check if <var> is null at line 100
segmentation fault
Run Code Online (Sandbox Code Playgroud)
我想把这个输出保存在一个文件中,所以我给出了如下命令
$ cppcheck abc.cpp 2> abc.txt
Run Code Online (Sandbox Code Playgroud)
但是abc.txt文件的内容如下
checking abc.cpp...
Run Code Online (Sandbox Code Playgroud)
它只保存了第一行,abc.txt 文件中缺少主要错误部分。
我应该使用哪个命令来获取文件中的所有输出行?cppcheck 工具的使用手册在这里。
2
从您的命令中删除并仅用>
作重定向运算符。
通过使用,2>
您将错误流 (STDERR) 重定向到一个文件;听起来您想要的是常规输出流(STDOUT)。
cppcheck abc.cpp > abc.txt
Run Code Online (Sandbox Code Playgroud)
如果您希望两个流都转到您的文件,您可以将 2(错误流)连接到 1(标准输出流),如下所示:
cppcheck abc.cpp > abc.txt 2>&1
Run Code Online (Sandbox Code Playgroud)