登录
首页 >  Golang >  Go问答

为什么使用bufio.NewWriter时,对os.Stdin的调用正常呢?

来源:stackoverflow

时间:2024-02-25 21:00:28 274浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《为什么使用bufio.NewWriter时,对os.Stdin的调用正常呢?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

package main

import (
    "bufio"
    "os"
)

func main() {
    bw := bufio.newwriter(os.stdin)
    bw2 := bufio.newwriter(os.stdout)

    bw.writestring("hello, world 1\n")
    bw2.writestring("hello, world 2\n")

    bw.flush()
    bw2.flush()
}

此代码显示本地环境中的两个字符串。 但为什么它在不同环境下的工作效果不同呢?

我的本​​地环境 操作系统:macos 12.6 去:go1.19.2达尔文/amd64 ide:vscode

  • 在我的本地计算机上:
$ go run myworkspace/main/main.go
hello, world 1
hello, world 2
  • 关于演示:
# in the 'Output' section
---
Hello, world 2

Program exited.

正确答案


go 演示
https://go.dev/play/p/PtoDwCZGggd

一直向下滚动到“关于演示”

go 演示丢弃对标准输入的写入。

在本地,os.stdin 是一个文件。

var (
    Stdin  = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
    Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
    Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr")
)

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《为什么使用bufio.NewWriter时,对os.Stdin的调用正常呢?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>