ホームページ コンピューターのチュートリアル コンピュータ知識 .NET9 Linux-x64 における Console.WriteLine の原理

.NET9 Linux-x64 における Console.WriteLine の原理

Feb 23, 2024 am 09:04 AM
writer console

.NET9 Linux-x64下Console.WriteLine原理

#1 はじめに

Windows での Console.WriteLine の実行プロセスにおける Console.WriteLine の共通原則について説明しました。この記事では、Linux-x64

での最新の .NET9 実行プロセスについて説明します。

2. マネージ コード

.NET では、通常、ストリームの読み取りおよび書き込み操作に StreamReader および StreamWriter という 2 つのクラスが使用され、それらの名前空間は System.IO にあります。これらのクラスは、マネージド ライブラリ System.Runtime.dll に含まれています。簡単な操作例を次に示します:

リーリー

StreamWriter と StreamReader は、それぞれ TextWriter と TextReader から派生します。 Console.WriteLine によって出力される文字列は、CLR ライブラリの TextWriter を通じて直接書き込まれたデータ ストリーム/デバイスです。

###例えば: ### リーリー

Console.WriteLine は Out.EnsureInitialized 関数を呼び出します。Out は TextWriter 型です。コードは次のとおりです:

リーリー

EnsureInitialized 関数は、Volatile.Write 関数を呼び出します。Volatile.Write 関数は、パラメーター 2 の値をパラメーター 1 フィールドに書き込むことを意味します。ここでの説明は、CreateOutputWriter(ConsolePal.OpenStandardOutput()) によって返された値を s_out フィールドに書き込むことです。s_out も TextWriter 型です。

CreateOutputWriter(ConsolePal.OpenStandardOutput()) によって返される値は次のとおりです。 CreateOutputWriter 関数は次のとおりです:

リーリー

CreateOutputWriter が引き続き TextWriter を返すことがわかります。これは、Volatile.Write がストリーム データをストリーム データに書き込み、それをデバイスから出力することを意味します。

ここに書かれているストリームデータの値は何ですか?引き続き、Stream タイプを返す ConsolePal.OpenStandardOutput() 関数を見てみましょう。

リーリー

Linux/Unix での操作は次のとおりです。UnixConsoleStream クラスは OpenStandardOutput でインスタンス化されます。UnixConsoleStream のコンストラクターの最初のパラメーターは Interop.CheckIo(Interop.Sys.Dup(Interop.Sys.FileDescriptors.STDOUT_FILENO) ) です。 Interop.Sys.Dup は、ファイル テーブル エントリ操作を実行する Linux 上の関数です。 CheckIo はチェック関数なので、ここでは無視できます。

たとえば、一般的に、Linux のターミナルで hello World を出力するには、通常 printf("hello Word") を使用します。 リーリー

Linux では、パラメータ STDOUT_FILENO が端末操作の Dup 関数に渡されることがわかります。UnixConsoleStream の 2 番目のパラメータは FileAccess.Write で、これは文字列の書き込みを意味します。次に、このストリームをカプセル化して返し、Volatile.Write を通じて端末ストリームに書き込み、出力します。

それは実際には非常に明確であり、そのプロセスは大まかに次のとおりです:

リーリー

以上が.NET9 Linux-x64 における Console.WriteLine の原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

コンソールってどういう意味ですか? コンソールってどういう意味ですか? Sep 05, 2023 pm 02:43 PM

コンソールとは、コンソールを意味します。コンピュータ システムと対話するデバイスまたはソフトウェアです。通常は、情報を入力および出力するためのキーボードと画面を備えたデバイスです。コンソールは、もともと大型コンピュータ システムに使用され、後に個人用にも適用されました。ユーザーがコンピュータ システムを管理および保守したり、オペレーティング システムやアプリケーションをインストールしたり、プログラムをデバッグしたりするのに役立ちます。

新しいNintendo Switch Liteのリフレッシュの予約注文が開始されました 新しいNintendo Switch Liteのリフレッシュの予約注文が開始されました Jun 29, 2024 am 06:49 AM

任天堂は、最新バージョンのSwitch Lite(Amazonで現在189.99ドル)の予約注文を開始した。ただし、このデバイスはまだ世界中で注文できません。要約すると、同社はほぼ 2 週間前に Switch Lite Hyrule Edition を発表しました。

C# の Console.Clear 関数を使用してコンソール出力をクリアする C# の Console.Clear 関数を使用してコンソール出力をクリアする Nov 18, 2023 am 11:00 AM

C# で Console.Clear 関数を使用して、コンソール出力をクリアします。C# コンソール アプリケーションでは、新しいコンテンツを表示したり、より良いユーザー エクスペリエンスを提供したりするために、コンソールの出力情報をクリアする必要があることがよくあります。 C# には、この関数を実装するための Console.Clear 関数が用意されています。これにより、コンソールの出力をクリアしてインターフェイスを再び空白にすることができます。 Console.Clear 関数の呼び出し形式は次​​のとおりです: Console.Clear(); この関数は入力を必要としません。

コンソールとはどういう意味ですか コンソールとはどういう意味ですか Aug 09, 2023 pm 04:21 PM

コンソールは、コンピューター プログラムでテキストやコマンドを入出力するために使用される対話型インターフェイスです。オペレーティング システムや開発環境が異なると、コンソールの外観や機能も異なります。通常、コマンド ライン インターフェイスまたはコマンド ライン プロンプトを提供するテキスト インターフェイスで、ユーザーがキーボードからコマンドを入力し、プログラムの出力を表示できるようにします。

任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 Jun 20, 2024 am 09:41 AM

任天堂は昨日、最新の Nintendo Direct イベントで多くのゲームを発表しましたが、その概要については別途ご案内しました。さらに、同社は Switch Lite の新バージョン (Amazon で現在 194.93 ドル) も発表しました。

MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開発者との関係を断つ MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開発者との関係を断つ Sep 01, 2024 am 06:30 AM

最近 MagicX XU Mini M を購入した方は、このニュースは驚くかもしれません。新しくリリースされたハンドヘルド コンソールのハードウェアとソフトウェアの分解により、宣伝されている RK3562 CPU が実際にはスペックの低い古い RK3326 プロセッサであることが明らかになりました。

C# で Console.WriteLine() を使用する方法 C# で Console.WriteLine() を使用する方法 Feb 25, 2024 pm 02:36 PM

C# で Console.WriteLine() を使用するには、特定のコード サンプルが必要です。C# の Console.WriteLine() は、テキスト行をコンソールに出力するために使用される非常に一般的なメソッドです。この関数は、他のプログラミング言語の print() 関数または println() 関数に似ています。 Console.WriteLine() の使い方は非常に簡単で、括弧内に出力したいテキストを書いて Enter キーを押すだけです。以下は具体的なものです

コンソールインターフェイスとは何ですか? コンソールインターフェイスとは何ですか? Aug 08, 2023 am 11:15 AM

コンソール インターフェイスは、コンピュータのコマンド ラインやブラウザ開発ツールで情報を出力するためのツールで、出力結果やアプリケーションのデバッグ情報を簡単に記録および表示する方法を提供します。コンソール インターフェイスを使用することで、開発者はより効果的に問題を特定して解決し、アプリケーションのパフォーマンスを最適化し、開発効率を向上させることができます。コマンド ラインでもブラウザ開発ツールでも、コンソール インターフェイスは不可欠なツールです。

See all articles