首页 > 后端开发 > Golang > 如何使用 Go 检查标准输入 (Stdin) 中的数据可用性?

如何使用 Go 检查标准输入 (Stdin) 中的数据可用性?

Linda Hamilton
发布: 2024-11-03 13:11:30
原创
947 人浏览过

How Can I Check for Data Availability in Standard Input (Stdin) Using Go?

使用 Go 检查标准输入(Stdin)中的数据可用性

在 Go 中,os 包提供了 os.Stdin 变量来访问标准输入流。但是,如果没有数据可供读取,该流有时可能会阻塞。要确定数据是否存在于输入流中,可以将 os.Stdin 视为文件并检查其大小。

解决方案:

如 os.Stdin 所示。 Stdin 的行为类似于文件,其 Stat() 方法可用于检索文件信息,包括其大小。下面是一个例子:

<code class="go">package main

import (
    "fmt"
    "os"
)

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>
登录后复制

用法:

此代码可以用作可执行文件“pipe”:

<code class="bash">$ ./pipe
Stdin is empty
$ echo test | ./pipe
5 bytes available in Stdin</code>
登录后复制

中第一行,管道可执行文件在没有输入的情况下运行,导致标准输入为空,输出为“Stdin 为空”。在第二行中,文本“test”通过管道传输到输入中,导致 Stdin 的大小增加,并且输出更改为“Stdin 中可用 5 个字节。”

以上是如何使用 Go 检查标准输入 (Stdin) 中的数据可用性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板