検索

.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 までご連絡ください。
Outlook 365に表示されない添付ファイルを修正する方法は?Outlook 365に表示されない添付ファイルを修正する方法は?Apr 19, 2025 am 12:50 AM

Outlook 365で添付ファイルをダウンロードまたは送信するのに苦労していますか?時々、Outlookは何らかの未知の理由でそれらを表示しないため、それらを見ることができません。 PHP.CN Webサイトのこの投稿では、表示されていない添付ファイルの使用ヒントをいくつか収集します。

V Rising Connectionがタイムアウトする方法は?ここに5つのソリューションがあります! - ミニトールV Rising Connectionがタイムアウトする方法は?ここに5つのソリューションがあります! - ミニトールApr 19, 2025 am 12:49 AM

V Rising Playerが近くにいる、またはすでにいっぱいのサーバーに参加しようとすると、「V Rising Connection Timed」問題に遭遇する可能性があります。あなたがそれらの1つである場合、あなたはソリューションを取得するためにPHP.CNからこの投稿を参照することができます。今、あなたの読書を続けてください。

Windowsセキュリティでリアルタイム保護をオン/オフにする方法は? - ミニトールWindowsセキュリティでリアルタイム保護をオン/オフにする方法は? - ミニトールApr 19, 2025 am 12:48 AM

Windowsは、Windowsセキュリティを介してリアルタイム保護を供給します。しかし、この機能は、危険だと思う何かをすることを妨げる可能性があります。この状況では、一時的にリアルタイム保護をオンにすることをお勧めします。このPHP.CNの投稿では、その方法が表示されます

Windows 11 24H2またはWindows 12?これは重要ですか?Windows 11 24H2またはWindows 12?これは重要ですか?Apr 19, 2025 am 12:47 AM

Microsoftは、来年のWindows Updatesの非常に早い段階で作業を開始しました。最近の噂では、2024年の次のアップデートはWindows 12ではなくWindows 11 24H2である可能性があると述べています。現在、すべてが不確かです。 php.cnは、関連するインフォールを見るためにあなたを連れて行きます

修正:要求された操作を実行できません - エラー0x80030001 -minitool修正:要求された操作を実行できません - エラー0x80030001 -minitoolApr 19, 2025 am 12:46 AM

エラー0x80030001は、多くの場合、ファイルをコピーしようとしているときに発生します。エラーコードには、「要求された操作を実行できない」というメッセージが添付されます。このエラーに苦労している場合は、この記事をphp.cn wで読むことができます

Windows 11 KB5034765のダウンロードとインストール方法Windows 11 KB5034765のダウンロードとインストール方法Apr 19, 2025 am 12:45 AM

2024年2月13日、Microsoftは、Windows 11 22H2およびWindows 11 23H2用にKB5034765(OSが22621.3155および22631.3155を構築する)をリリースしました。このセキュリティアップデートは、多くの新しい改善とバグ修正をもたらします。 Windows1をダウンロードしてインストールする方法を学ぶことができます

デバイスマネージャーから欠落しているパワー管理タブ ​​- トップガイドデバイスマネージャーから欠落しているパワー管理タブ ​​- トップガイドApr 19, 2025 am 12:44 AM

いくつかのコンピューターの問題を修正する必要がある場合、デバイスマネージャーは広く使用されています。問題のあるデバイスを確認し、デバイスドライバーをアンインストールまたは更新することを決定できます。また、デバイスマネージャーに電力管理設定を設定することもできます。ただし、f

Windows 11/10でWindowsバックアップをデフォルトにリセットする2つの方法Windows 11/10でWindowsバックアップをデフォルトにリセットする2つの方法Apr 19, 2025 am 12:43 AM

バックアップと復元(Windowsバックアップ)が機能しない場合、デフォルトにリセットすることを選択できます。 Windows 11/10でWindowsバックアップをデフォルトに復元する方法は? php.cnは、このことを2つの方法で簡単に実行するように導き、それらを見に行きましょう。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境