NASM не работает с / dev / stdout в качестве вывода - PullRequest
0 голосов
/ 20 октября 2018

Моя задача - создать программу, генерирующую некоторый код сборки на основе ввода в stdin, и выводить машинный код в stdout.

Мой подход выглядит следующим образом:

#!/bin/sh

if [ ! -f ./lc ]; then
    gcc lc.c -o lc
fi

./lc | nasm /dev/stdin -fbin -o /dev/stdout

LC читает изстандартный вывод и выводит ассемблерный код на стандартный вывод.Затем я передаю ассемблерный код в nasm, который читает из его стандартного ввода.Наконец, я хочу вывести машинный код в /dev/stdout.

Но я получаю такую ​​ошибку:

nasm:fatal: unable to open output file `/dev/stdout'

Чтобы проверить, работает ли / dev / stdout, я проверил это так:

$ cat < /dev/stdin > /dev/stdout
test
test

Что я делаю не так?Я пытался sudoing, без эффекта.Есть ли переключатель командной строки для этого приложения для вывода кода на стандартный вывод?Лучше всего избегать создания любых временных исходных файлов и работать исключительно с потоками.

...