我想编写一个自动 C 程序检查器。例如,我有一个玩具“hello.c”程序:
#include <stdio.h>
int main()
{
int a, b;
while (scanf("%d %d", (&a)-1000000000000000, &b) != EOF)
{
printf("%d\n", a+b);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我的输入文件“1.in”:
1 2
4 5
10 10
2 2
3 2
7 4
Run Code Online (Sandbox Code Playgroud)
和输出文件“1.out”:
3
9
20
4
5
11
Run Code Online (Sandbox Code Playgroud)
我使用“gcc hello.c -o hello.o”来编译并生成一个可执行程序“hello.o”。很明显,程序会遇到“段错误”:(在我的MAC OS X中运行)
$ ./hello.o <1.in
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
但我想使用管道和差异制作一个自动检查器:
./hello.o <1.in | diff - 1.out
Run Code Online (Sandbox Code Playgroud)
输出是:
0a1,6
> 3
> 9
> 20
> 4
> 5
> 11
Run Code Online (Sandbox Code Playgroud)
没有错误信息显示!但我想在终端(MAC OS …