2014-11-25 65 views
-2

我想在UNIX上編寫一個將屏幕或終端分成兩半的程序,在新屏幕上產生一個新進程並使用發送的命令關閉它原本的。我使用C語言和GCC編譯器進行編程。 據我所知,這可以通過運行fork + exec函數來創建單獨的進程,並通過管道函數完成通信。UNIX編程,用fork,exec和管道進行分割屏幕

這是可能的,和/或它之前做過? 我非常想用我現有的項目來完成我的工作。

+0

你需要使用類似curses庫的東西做屏幕分割。分叉不會進入它。 – 2014-11-25 04:29:32

+1

你試過了什麼?用什麼語言?它是如何工作或不工作的?你在處理流程,管道,拆分屏幕還有其他問題方面有問題嗎? – 2014-11-25 04:30:09

+0

@JoachimPileborg我爲這個模糊不清而道歉;我使用C語言和gcc編譯器進行編碼,並且在分割屏幕時遇到問題。我已經成功地運行了一個簡單的程序,其中使用fork和exec創建了具有單獨代碼的新進程,並且已經使用pipe函數的最基本形式成功交換了數據,我應該詳細說明這一部分嗎? 我想知道是否有可能在新屏幕上運行新進程,以便我可以看到兩個進程中發生的情況,更具體地說,不使用其他軟件。 – user3240534 2014-11-25 12:40:48

回答

0

當我做了類似於你所描述的事情時,我用screen來處理顯示輸出(特別是,-X選項,讓它做分割窗口和啓動命令)。我想tmux有類似的控制能力。我通常使用另一種機制(管道,套接字或文件)來協調進程之間的輸入/輸出。