Я пишу фильтр, и я изучаю подход к написанию программы. Мне было интересно, возможно ли это: от ввода в stdin, write to stdout, но перенаправить этот stdout таким образом, чтобы программа считывала сгенерированную stdout, как если бы она была stdin, опять же, таким образом, перерабатывая данные. Я не хочу хранить данные в гигантском массиве - я хочу сделать это, используя потоки, исключительно. Возможно ли это? (если нет, это тоже хорошо). Кроме того, примечание: я хочу сделать это только в одном исходном файле кода C.Можно ли перенаправить stdout как stdin в ту же программу?
3
A
ответ
1
Да, вы можете создать pipe себе в любой системе POSIX.
Но нет никакого бесплатного обеда. Если вам нужно хранить данные, он должен куда-то идти. Канал поддерживается буфером, которым управляет ОС.
Вы можете буквально установить концы трубы на обратные stdin
и stdout
(как в ответе Йоахима), но я бы посоветовал это сделать, поскольку это будет отменять обычные входные и выходные каналы программы. (Ни C, ни служба POSIX не будут «терять» поток, чтобы пользователь мог видеть его, а также отражать его внутри программы.)
0
Смежные вопросы
- 1. Можно ли перенаправить stdin/stdout с go: generate
- 2. Не удается перенаправить STDIN/STDOUT
- 3. Как перенаправить stdin и stdout в NACL?
- 4. Можно ли перенаправить stdout для двух подпроцессов?
- 5. Можно ли перенаправить stdin прямо в файл?
- 6. Перенаправить stdin в программу C другому процессу
- 7. Перенаправить stdin и stdout в Java
- 8. Как перенаправить stdout и stdin на telnet-соединение?
- 9. Можно ли перенаправить на ту же страницу JSP с сервлета?
- 10. Перенаправить stdin в stdin
- 11. stdin → stdout?
- 12. Как реализовать stdin, stdout-обертку?
- 13. Перенаправить stdin и stdout в bash для полных файлов журнала
- 14. Android переустановить ту же программу
- 15. Как эхо stdin в stdout
- 16. Прямое чтение/запись в подпроцесс stdin/stdout
- 17. supervisord: можно ли перенаправить подпроцесс stdout обратно в супервизор?
- 18. Можно ли перенаправить stdout дважды с помощью dup2?
- 19. , где создан stdin/stdout
- 20. Можно ли повторно перенаправить stdout в приложение python для Bluemix?
- 21. stdout/stdin и параметры
- 22. Как перенаправить на ту же страницу
- 23. Python Threading stdin/stdout
- 24. Есть ли чтение из stdin flush stdout?
- 25. Пытаться перенаправить stdout в файл
- 26. Протестируйте программу, которая использует tty stdin и stdout
- 27. Stdin Stdout python
- 28. Перенаправить два или более STDOUT на один STDIN
- 29. Stdin и Stdout
- 30. Перенаправление stdout и stdin - Java
Это очень возможно, но как это сделать, во многом зависит от того, в какой системе вы находитесь (например, Windows или POSIX (например, Linux, OSX))? –
Извините, я просто добавил примечание: я хочу сделать это только с помощью кода. Я считаю, что это возможно с помощью piping в командной строке Unix, но я хочу сделать это, используя pure C. – pyrrhic
@JoachimPileborg Windows имеет достаточно интерфейса POSIX для этого, нет? – Potatoswatter