我的任务是创建一个程序,该程序根据stdin上的输入和stdout上的输出机器代码生成一些汇编代码。
我的方法如下:
#!/bin/sh
if [ ! -f ./lc ]; then
gcc lc.c -o lc
fi
./lc | nasm /dev/stdin -fbin -o /dev/stdout
LC从stdin读取并将汇编代码输出到stdout。然后,我将汇编代码传递给从标准输入中读取的nasm。最后,我想将机器代码输出到/ dev / stdout。
但是,我得到这样的错误:
nasm:fatal: unable to open output file `/dev/stdout'
要验证/ dev / stdout是否有效,我像这样检查了它:
$ cat < /dev/stdin > /dev/stdout
test
test
我在做什么错?我尝试了sudoing,没有效果。此应用程序是否有一些命令行开关将代码输出到stdout?我最好的选择是避免创建任何临时源文件,而只能在流上工作。