在 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中文網其他相關文章!