モニターは、表示されたデータをどのように保存しますか?メモリに保存されていますか?保存されている場合、どうすればアクセスできますか?私が尋ねている理由は、私が操作されているデータを格納するために配列を使用するテキストエディタをプログラミングしているからです。自分の配列を使うのではなく、画面に表示されているデータを含むメモリにアクセスできるのではないかと思っていました。同じデータ用にメモリを2回予約するのは冗長なようです。しかし、モニターに表示されているデータがどのように保存されているのか、あるいはまったく保存されていないのか、私にはわかりません。
2 に答える
あなたはどこに行くかについてほとんど仮定をすることができませんstdout
。それはターミナルに行くかもしれません、そこでそれはどこかのバッファに行き着くでしょう。または、別のプロセスにパイプされる可能性があります。またはそれはするかもしれません/dev/null
。またはラインプリンタなどに。そして、それがどこかのメモリにある場合でも、そのバッファのサイズは制限されているため、必ずしもファイル全体を保持する必要はありません。とにかく、おそらくそのメモリにアクセスする権限はありません。したがって、これは理論的には特定の状況で機能する可能性がありますが、それは間違いなく正しい方法ではありません。
テキストエディタにstdoutを使用したくない場合ncurses
もありますが、ターミナル内の任意の場所にテキストを配置して自由に更新できる、のようなものです。ファイルの実際の内容は、おそらくあなたがすでに行っている方法で、あなた自身の内部バッファを通して最もよく管理されますが、あなたも考えるかもしれませmmap
ん。
Stdoutは、プログラムの出力ストリームです。プログラムを実行する環境によって、このストリームが指す場所が決まります。おそらく、コンソール端末または一部のIDEからプログラムを実行しています。
コンソール端末は、出力をファイルまたは別のプログラムの入力にリダイレクトするように指示されない限り、デフォルトで出力を内部に格納します。
合意なしに後でクエリを実行するために出力情報を保存するためにサードパーティに依存することはできません。必要なビューを生成するために、プログラム内に十分なデータを保持する必要があります。そして、はい、上記のように、ncursesとそのようなライブラリは、コンソールアプリの構築を少し簡単にします。