つまり、上下の矢印キーをサポートし、逆の検索を行う場合はctrl-r
をサポートする必要があります。私はどこから始めるべきですか?Cでssh機能を備えたコンソールを実装するにはどうすればよいですか?
3
A
答えて
1
答えは、どのように低レベルになりたいかによって決まります。 readline
またはeditline
を使用すると、高いレベルの回答です。次のレベルを下げるにはlibncurses
を使用し、getch()
に電話してキーボード入力を読み、それから自分自身で履歴を処理します。
最低レベル(端末用)が実際の入力ストリームのバイトを処理しています。矢印キーは、特定の端末に応じて特定の文字シーケンスを送信します。たとえば、vt100エミュレータは、^ [[上矢印]のA、^ [[下矢印]のBなど]を送信します。これらを読むためには、改行を待つのではなく、すぐに入力を返すように端末の属性を設定する必要があります。これを行うには、termios
標準入力モードを無効にする関数を使用します。次に、文字を一度に読み込み、文字(27、91、65)が得られているかどうかを確認し、それが上向き矢印であることを知り、それに応じて応答します。
この低レベルは退屈で壊れやすいですし、別の端末エミュレータを使用している場合は動作しません(あなたが他の端末のための適切な入力シーケンスを取得するためにterminfo
を使用することができますが。)
あなたがにいる場合ターミナル(シリアルライン、Xウィンドウ、ビットマップディスプレイなど)よりも低いレベルであれば、答えは再び変化します。
関連する問題
- 1. C++プログラムでlinux/proc/versionに似た機能を実装するにはどうすればよいですか?
- 2. アンドロイドで音声検索機能を備えたカスタム検索ビューを実装するにはどうすればよいですか?
- 3. C#でスレッドアフィニティを実装するにはどうすればよいですか?
- 4. Facebookのような機能を実装するにはどうすればいいですか?
- 5. Android:アプリでGoogleマップでプリキャッシュ機能を実装するにはどうすればよいですか?
- 6. Androidで「フィードバックを送信」機能を実装するにはどうすればよいですか?
- 7. デスクトップアプリケーション用に「ログインを自動的に」機能を実装するにはどうすればよいですか?
- 8. Flaskに「ログインしてください」機能を実装するにはどうすればよいですか?
- 9. VBAでZip機能を実装するにはどうすればよいですか?
- 10. OS Xでジェスチャ認識機能を実装するにはどうすればよいですか?
- 11. ウェブサイトで検索機能を実装するにはどうすればよいですか?
- 12. スクロールでデータの自動ロード機能を実装するにはどうすればよいですか?
- 13. iOSアプリケーションでIVRコール機能を実装するにはどうすればよいですか?
- 14. Androidアプリでパスワードリセット機能を実装するにはどうすればよいですか?
- 15. 私のウェブサイトでPDF/PPT閲覧機能を実装するにはどうすればよいですか?
- 16. ウェブストアの「最後に見た」機能を実装するにはどうすればいいですか
- 17. MOSS2007/WSSにセッションタイムアウト機能を実装するにはどうすればよいですか?
- 18. Flexのリストコントロールにカスタムドラッグ機能を実装するにはどうすればよいですか?
- 19. アプリケーションに自動検索機能を実装するにはどうすればよいですか?
- 20. 削除ボタンと一緒にオートサジェスト機能を実装するにはどうすればよいですか?
- 21. Photoshopの「パッチツール」機能を同様に実装するにはどうすればよいですか?
- 22. 非CRUD機能をRESTful APIに実装するにはどうすればよいですか?
- 23. ドッカーで完全な機能を備えたLinuxディストリビューションを実行するにはどうすればよいですか?
- 24. シンプルな自動補完機能を実装するにはどうすればよいですか?
- 25. 切り替え可能なグリッド/テーブルビューを実装するにはどうすればよいですか?
- 26. OSGiコンソールをバンドルに実装するにはどうすればよいですか?
- 27. gremlinコンソールにカスタムjar(グラフ実装)を追加するにはどうすればよいですか?
- 28. 機能更新機能を備えた配列の最も効率的な実装は何ですか?
- 29. 制限を超えて実行するcoundowntimerを実装するにはどうすればよいですか?
- 30. iPhoneでUIPopoverの機能を実装するにはどうすればいいですか?
SSHのすべての機能を使いたいのですか、あるいは単にコマンド履歴を持つことができますか? – Alan
素敵な行編集機能が必要な場合は、表示されている多くのプログラムにこれらの機能を提供するGNU readlineライブラリを調べてください。 –
これらの項目はssh機能ではなく、シェルの機能です(bash/tcsh/zsh)、おそらくreadlineを使って実装しています。 –