私は学校のプロジェクトのために C でミニ シェルを作成しようとしています。私がやりたいのは、一種のコマンド履歴 (シェルのように) を実行することです。UP キーを押すと、前の入力が入力部分に書き込まれます。 、DOWN は反対のことを行います...そして、Enter キーを押してプログラムに送信する前に、次のように編集できます (下手な英語で申し訳ありません): [] はユーザー カーソルを表します。
my_shell$ some input wrote by me
my_shell$ []
my_shell$ some other input
my_shell$ []
and now if I press UP
my_shell$ some other input[]
If I press UP again
my_shell$ some input wrote by me[]
termcaps とその他の関数を使用することが許可されていますisatty, ttyname, ttyslot, ioctl, getenv, tcsetattr, tcgetattr, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs。
ioctl問題は、関数と関数のドキュメントを理解できないことです。またtty、これらの関数について、例を含む十分に説明されたチュートリアルが見つからず、それらを使用して何をしようとしているのかについてのドキュメントも見つかりません。
誰かがこれらの機能をわかりやすい方法で説明できますか? そして、私がやろうとしていることにそれらをどのように適用する必要がありますか (Linux-MacOs 互換性の方法を探しています) 助けてくれてありがとう。