我正在編寫一個過濾器,並且正在探索編寫該程序的方法。我想知道這是否可能:從stdin輸入,寫入到stdout,但是重定向這個stdout,使得程序再次讀取生成的stdout,就好像它是stdin一樣,從而重新處理數據。我不希望將數據存儲在一個巨大的數組中 - 我只希望使用數據流完成此操作。這甚至有可能嗎? (如果沒有,那也可以。)另外,一個註釋:我只想在一個C代碼的源文件中做這個。是否有可能將標準輸出重定向到同一個程序?
3
A
回答
1
是的,您可以在任何POSIX系統中爲自己創建pipe。
但是沒有免費的午餐。如果你需要存儲數據,它必須去某個地方。管道由OS管理的緩衝區支持。
你可以從字面上將管道的兩端向後stdin
和stdout
(如在勒夫的回答),但我建議不要說,因爲它會覆蓋程序通常的輸入和輸出通道。 (C或任何POSIX服務都不會「啓動」流,因此用戶可以看到它並在程序內部回顯)。
0
相關問題
- 1. 將過程輸出重定向到標準輸出
- 2. 將子進程的標準輸出重定向到父進程標準輸入
- 3. 重定向標準輸出
- 4. 標準輸出重定向
- 5. Powershell將標準輸出重定向到標準錯誤
- 6. 是否有可能輸出到監視流而不是標準輸入,標準輸出和標準錯誤? (python)
- 7. 將System.setout重定向回標準輸出
- 8. 標準輸出重定向到文件
- 9. ProcessBuilder重定向到標準輸出
- 10. 如何重定向到標準輸出?
- 11. 將父進程的控制檯(標準輸出,標準錯誤等)輸出重定向到子進程(反向)
- 12. 破折號重定向從標準輸入到標準輸出
- 13. C:重定向標準輸入,標準輸出到管道
- 14. 將Python標準輸入/輸出重定向到C#表單應用程序
- 15. C++程序失敗重定向標準輸出時到一個文件在Linux
- 16. 是否有可能重定向輸入/輸出從fd其他然後標準輸入,標準輸出,標準錯誤
- 17. 如何重定向一個子進程的標準輸出?
- 18. 爲什麼C程序的輸出順序在標準輸出重定向到文件時有所不同?
- 19. 是否有可能將一個程序的輸出重定向到不同操作系統中的其他程序的輸入?
- 20. 是否有可能將404重定向到Google App Engine標準中的Java應用程序的index.html?
- 21. 將文件重定向到標準輸出 - 反向io重定向
- 22. 是否有可能劫持標準出
- 23. 標準錯誤重定向到標準輸出
- 24. 標準輸出重定向到一個文件中使用多個線程
- 25. 是否有可能將輸出從jnlp-started應用程序重定向到文件?
- 26. 可能得到所有輸出到一個腳本標準輸出?
- 27. 強制程序在重定向時刷新其標準輸出
- 28. grep實用程序和重定向並追加標準輸出
- 29. 重定向命令輸出到變量和標準輸出ksh
- 30. 有沒有辦法將輸入和輸出重定向到同一個文件?
這是非常可能的,但怎麼做取決於你的系統(例如Windows或POSIX(如Linux,OSX))? –
對不起,我只是添加了一個註釋:我只想使用代碼來完成此操作。我相信這可以通過Unix命令行上的管道來實現,但我想用純C來做這件事。 – pyrrhic
@JoachimPileborg Windows有足夠的POSIX接口來做到這一點,不是嗎? – Potatoswatter