c - 如何将 ./a.out 和 .txt 文件与 diff 进行比较?
问题描述
所以我有一个c
程序,例如test1.c
,我想将它与一个名为test1expectedoutput.txt
.
我该怎么做?
c
我通过do编译了文件(用nano编写) gcc test1.c
,但是如何比较它?
将.c
文件.txt
与 diff 进行比较显然是行不通的,因为它只是随机地将它们全部打印出来,但是如果我尝试在该文件目录中使用 diff 进行比较:
diff ./a.out test1expectedoutput.txt
我收到的消息是:
Binary files ./a.out and test1expectedoutput.txt differ
所以我不是 100% 确定如何比较它们并知道它们的区别是什么?简单地说,说程序test1.c
只是说:
printf("Hello\n");
和test1expectedoutput.txt
刚刚阅读(与猫):
Hello
编译后如何比较这些?
解决方案
我了解您的意思是将 c 程序的输出与 txt 文件进行比较。在这种情况下,您可以首先通过将标准输出重定向到 .txt 文件来将输出存储到另一个文件:
./a.out > output.txt
diff output.txt test1expectedoutput.txt
diff
命令还支持-
文件名的符号,告诉它从标准输入中读取。因此,您无需将其存储到另一个文件中,只需使用单个命令diff
将标准输出重定向到命令的标准输入即可:
./a.out | diff test1expectedoutput.txt -
推荐阅读
- vector - 可以从迭代器中收集 &mut 吗?
- asp.net-mvc - IIS URL 重写匹配最佳实践
- javascript - 在 Bootstrap 3 中使用 tagsinput 和 typeahead
- php - MySQLi 错误 - 两次相同的输出
- arrays - 创建行数组VBA
- azure - Azure 数据工厂 ARM 模板
- python-3.x - python-snappy 循环流式传输数据到客户端
- ios - 在 iOS 订阅中,verifyReceipt 每天/每小时/等的调用频率是否有限制?
- amazon-web-services - 为什么某些 AWS IAM 操作需要所有资源
- ruby - 在 Ruby 中记忆具有多个参数的函数