Go でブロックせずに Stdin のデータを確認するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-31 11:16:29
オリジナル
574 人が閲覧しました

How to Check for Data in Stdin without Blocking in Go?

Go で標準入力のデータを確認する

Go では、コマンドやパイプラインを操作するときに標準入力 (stdin) と対話することが重要なタスクとなることがよくあります。ただし、プログラムの実行をブロックせずに stdin にデータがあるかどうかを判断するのは難しい場合があります。

os.Stdin ファイル オブジェクトは stdin を表し、Go の他のファイル オブジェクトと同様の機能を備えています。これにより、Stat 関数を活用して、サイズなどの stdin に関する情報を収集できるようになります。

stdin にデータが含まれているかどうかを確認するには、次のコードを使用してサイズを確認できます。

<code class="go">func main() {
    file := os.Stdin
    fi, err := file.Stat()
    if err != nil {
        fmt.Println("file.Stat()", err)
    }
    size := fi.Size()
    if size > 0 {
        fmt.Printf("%v bytes available in Stdin\n", size)
    } else {
        fmt.Println("Stdin is empty")
    }
}</code>
ログイン後にコピー

このコードを実行可能ファイルにコンパイルすると、標準入力にパイプされた入力を処理するフィルターとして使用できます。たとえば、コマンド echo test | を実行します。 ./executable はコンソールに「5 bytes available in Stdin」と出力し、stdin にデータが含まれていることを示します。逆に、何も入力せずに ./executable を実行すると、「標準入力が空です」と表示されます。

このアプローチにより、開発者はブロックせずに標準入力のデータを確認し、それに応じてプログラムのロジックを進めることができます。これは、パイプラインを操作するとき、または標準入力からのユーザー入力を処理するときに特に便利です。

以上がGo でブロックせずに Stdin のデータを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!