"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo detectar la disponibilidad de datos en la entrada estándar de Go (Stdin)?

¿Cómo detectar la disponibilidad de datos en la entrada estándar de Go (Stdin)?

Publicado el 2024-11-08
Navegar:366

How to Detect Data Availability in Go\'s Standard Input (Stdin)?

Detección de disponibilidad de datos en la entrada estándar (Stdin) usando Go

En Go, se pueden verificar datos en el flujo de entrada estándar (os.Stdin) usando la técnica de verificando el tamaño del archivo. Así es como funciona:

El os.Stdin se puede tratar como cualquier archivo normal, lo que nos permite examinar sus propiedades. Para hacer esto, recuperamos un objeto FileInfo usando os.Stdin.Stat(). Este objeto proporciona diversa información sobre el archivo, incluido su tamaño.

Al verificar el tamaño del archivo, podemos determinar si la secuencia Stdin contiene datos. Si su tamaño es mayor que cero, indica la presencia de datos. Por el contrario, un tamaño de cero indica que Stdin está vacío.

A continuación se muestra un ejemplo de código que demuestra este método:

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

Esta técnica proporciona una forma efectiva de determinar si os.Stdin tiene datos sin bloquear la ejecución del programa mientras espera la entrada. Puede resultar particularmente útil en casos en los que necesite manejar dinámicamente datos entrantes de fuentes o procesos externos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3