ホームページ > バックエンド開発 > Golang > Go でクロスプラットフォームのプロセス間通信に名前付きパイプを使用するにはどうすればよいですか?

Go でクロスプラットフォームのプロセス間通信に名前付きパイプを使用するにはどうすればよいですか?

DDD
リリース: 2024-11-01 03:25:27
オリジナル
423 人が閲覧しました

How can I use named pipes for cross-platform interprocess communication in Go?

Go を使用したクロスプラットフォーム名前付きパイプ

名前付きパイプは、プラットフォーム間のプロセス間通信に便利なメカニズムを提供します。ただし、Go での名前付きパイプの実装はオペレーティング システムによって異なる場合があります。 Windows と Linux の両方との互換性を確保することを目的としたソリューションは次のとおりです。

まず、前述の問題では、名前付きパイプを処理するためにクロスプラットフォームの抽象化が必要です。 https://github.com/golang/go/issues/3599 で提起された Go の問題に従って、推奨される解決策は、Windows 用の名前付きパイプの純粋な Go 実装を提供する natefinch の npipe パッケージを利用することです。

<code class="go">import "github.com/natefinch/npipe"</code>
ログイン後にコピー

パイプを作成するには:

<code class="go">pipe, err := npipe.Dial(`\.\pipe\mypipe`)</code>
ログイン後にコピー

パイプから読み取るには:

<code class="go">buf := make([]byte, 1024)
_, err := pipe.Read(buf)</code>
ログイン後にコピー

パイプに書き込むには:

<code class="go">_, err := pipe.Write([]byte("Hello from Windows!"))</code>
ログイン後にコピー

このアプローチWindows と Linux の両方で名前付きパイプ機能が利用できるようになり、Go アプリケーションでの一貫したクロスプラットフォーム通信が可能になります。

以上がGo でクロスプラットフォームのプロセス間通信に名前付きパイプを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート