使用cmp进程替换(stdout)? (击)

问题描述 投票:0回答:2

对于我们的课程,我们必须制作一个C程序,将MIPS指令编码为指令字,并将指令字解码为MIPS指令。

我已经编写了所有内容并在某些情况下进行了测试,但我想在更大的数据集上进行测试。

我们给出了测试文件:test.asmtest.bin.asm文件具有MIPS指令,.bin文件具有用于那些MIPS指令的等效指令字。

我的decode函数接收来自test.bin的指令字,将它们转换为等效的MIPS指令并将其发送到stdout

我想将我的解码函数的输出与test.asm文件中的MIPS指令进行比较,看它们是否相同(我正确解码)。

有人告诉我,我可以使用cmp命令和进程替换来比较两者,但我不知道我会把它放在<(...)里面。

我运行我的程序:bin/mips -d < test.bin,其中-d标志代表decoding

我想也许会是这样,但我不确定:

cmp <(cat test.asm) <(bin/mips -d < test.bin)

c bash command-line-interface mips
2个回答
3
投票

该命令应该可以工作,但是不需要使用cat进行进程替换,只需将文件名放在那里:

cmp test.asm <(bin/mips -d < test.bin)

1
投票

我不确定使用格式cmp file1 file2,但你可以像这样做file1 | cmp file2

bin/mips -d test.bin | cmp test.asm

© www.soinside.com 2019 - 2024. All rights reserved.