登录
首页 >  Golang >  Go问答

在 Golang 中关闭终端

来源:stackoverflow

时间:2024-02-07 22:01:09 359浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《在 Golang 中关闭终端》,聊聊,我们一起来看看吧!

问题内容

我正在使用一个外部库,它要求在终端上输入密码,或者使用一个必须返回正确密码的缓冲区。它本身正在使用另一个库来检查终端是否可用。该库说终端可用,这是正确的。

我想禁用终端,以便使用我提供的缓冲区中的密码。我怎样才能做到这一点?


正确答案


据我所知,该库通过系统调用检查给定的文件描述符是否来自终端设备。您可以关闭标准输入,然后就到此为止了:)如果该库硬编码了 os.Stdout ,则需要另一个解决方案,因为如果您关闭 os.Stdout 您将无法再使用终端输出。

下面的代码打印错误。

package main

import (
    "fmt"
    "github.com/mattn/go-isatty"
    "os"
)

func main() {
    err := os.Stdin.Close()
    if err != nil {
        fmt.Println("Could not close stdin")
        panic(err)
    }

    fmt.Println(isatty.IsTerminal(os.Stdin.Fd()))
}

理论要掌握,实操不能落!以上关于《在 Golang 中关闭终端》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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