首頁  >  文章  >  後端開發  >  在 Golang 中禁用終端

在 Golang 中禁用終端

WBOY
WBOY轉載
2024-02-14 19:40:08567瀏覽

在 Golang 中禁用终端

在 Golang 中,停用終端機是一種常見的需求,可防止程式在終端機中輸出資訊。這在一些特定場景中非常有用,例如在背景執行程式、作為服務運行等。禁用終端可以使程式更加安靜和隱秘,同時也可以提高程式的運作效率。本文將為大家介紹如何在 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 中禁用終端的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除