2015-01-04 60 views
0

我知道管道在Linux shell(我有一個非常基本的知識)。是否有可能重定向輸入/輸出從fd其他然後標準輸入,標準輸出,標準錯誤

假設我有一個可執行文件,我知道從特定文件(或從套接字)讀取,是否有可能使用shell管道重定向此文件的輸出/輸入,如使用stdin/out/err ?

謝謝

+0

你是什麼意思'這個文件的輸出/輸入? – alijandro 2015-01-04 11:19:32

+0

@alijandro我的意思是,如果程序使用fread從特定文件中讀取,我將能夠重定向文件輸出,因此它不會是文件內容本身,而是我提供的字符串或另一個輸入文件 – Gadol21 2015-01-04 11:26:23

+0

這是不可能的,至少不能像shell重定向那樣簡單。將輸入重定向到一個程序是很簡單的,因爲幾乎所有* nix下的程序都是默認處理的,但如果它不是讀取標準輸入,而是讀取一些(可能是未知的)文件,的運氣。它可能會做一些涉及'/ proc'的惡意破解,但是(所有文件描述符都可以訪問)。但這不容易,也不漂亮,也不便攜。 – Damon 2015-01-04 11:39:06

回答

0

是的,絕對。一種方法是調用dup()dup2()並關閉()原始文件。但是,當然,你需要源代碼來修改原始程序。

相關問題