2012-03-11 13 views
0

我正在嘗試創建一個shell(沒有嚴重的只是搞亂)並且想要讀取原始模式下的箭頭鍵以避免控制字符被打印到屏幕上,並且實際上是能夠使用他們返回並編輯一行,然後再按Enter鍵。這可能與termios有關,但有沒有更簡單的方法來做到這一點?或者,對於termios可能很容易?這似乎是一個相當大的問題,需要全面研究。在原始模式下解釋箭頭鍵(posix)

我在循環中讀取stdin的行,並使用從輸入字符串創建的參數向量調用fork> execvp。

+0

你使用的是curses庫嗎? – Matt 2012-03-11 10:43:36

+0

@Mat不,只是普通的stdio。 – foo 2012-03-11 10:45:57

回答

3

這也許可以用termios的做,但有沒有這樣做的更簡單的方法 這

目前最簡單的方法是使用readline庫,它提供了比一切的一切你」再提一提。應該相當容易讓你的shell的行爲像一個完整的bash(行編輯,命令歷史)相對容易。

+0

謝謝,我只是看着它,它似乎正在做我想要的。 – foo 2012-03-11 10:46:56

+0

@foo尋找「行編輯」,「readline移動命令」,「搜索歷史命令」。 – cnicutar 2012-03-11 10:47:26

+0

謝謝,會做。 :) – foo 2012-03-11 11:03:27