Как перенаправить на стандартный вывод? - PullRequest
4 голосов
/ 26 мая 2009

У меня есть приложение UNIX, написанное на ANSI C, которое записывает данные непосредственно в файл. Этот файл определяется одним из параметров аргумента.

В целях тестирования я могу использовать / dev / null для имени файла, что эффективно перенаправляет вывод в ничто.

Я хотел бы иметь возможность перенаправить вывод на стандартный вывод аналогичным способом. Это возможно? Если так, то как? Я безуспешно пробовал следующее:

a.out -f / dev / ttys000

(где / dev / ttys000 - это tty, указанный в списке 'w')

Ответы [ 2 ]

15 голосов
/ 26 мая 2009

/dev/stdout

2 голосов
/ 26 мая 2009

Вы можете обнаружить строковый аргумент "stdout" и затем использовать дескриптор файла stdout в C (1) http://en.wikipedia.org/wiki/File_descriptor

Или используйте / dev / stdout или / dev / fd / 1

Если это «встроенная» функция, а не временная вещь для тестирования, вы можете использовать функции C в дескрипторе файла stdout, а не на узле устройства, так как стандарт C немного более устойчив, чем POSIX стандарт imho.

...