"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go의 표준 입력(os.Stdin)에 차단 없이 데이터가 있는지 확인할 수 있는 방법이 있나요?

Go의 표준 입력(os.Stdin)에 차단 없이 데이터가 있는지 확인할 수 있는 방법이 있나요?

2024년 11월 15일에 게시됨
검색:194

Is there a way to check if standard input (os.Stdin) in Go has data without blocking?

Go를 사용하여 Stdin에서 데이터 가용성을 확인하는 방법

질문

Go에서 입력 스트림(os .Stdin)에 데이터가 포함되어 있습니까?

사용 가능한 데이터가 없을 때 스트림 블록에서 읽는 기존 접근 방식으로 인해 특정 용도에는 실용적이지 않습니다. Cases.

답변

다른 파일과 마찬가지로 os.Stdin도 검사하여 크기를 확인할 수 있으므로 데이터 가용성 검색을 위한 편리한 방법을 제공합니다.

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")
    }
}

이 기술을 활용하면 비어 있는 표준 입력 입력과 비어 있지 않은 표준 입력 입력을 구별할 수 있으므로 데이터 가용성을 보다 유연하게 처리할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3