Linux下如何将包含版本、日期的完整Splint检测输出重定向到文件
Linux下生成完整Splint检测报告的解决方法
问题原因
Splint工具默认会将两类内容输出到不同的流:
- 版本信息、最终检测统计结果输出到标准错误流(stderr)
- 具体代码告警内容输出到标准输出流(stdout)
你之前使用的>只重定向了标准输出流,所以生成的报告缺失头部和尾部内容。
解决命令
方法1:Bash环境最简写法(推荐,兼容Bash 4.0及以上版本)
直接合并两个流写入目标文件:
splint main.c &> report.txt
方法2:全POSIX shell兼容写法
适用于所有Linux默认Shell环境:
splint main.c > report.txt 2>&1
方法3:同时在终端展示输出+写入文件
如果需要执行命令时实时查看检测进度,同时保存完整报告,可以使用tee命令:
splint main.c 2>&1 | tee report.txt
执行上述任意命令后,生成的report.txt就会包含完整的版本头部、告警详情、检测统计结尾全部内容。
内容的提问来源于stack exchange,提问作者H2O
相关产品推荐
相关产品推荐

