Cómo usar la redirección en C para la entrada de archivos

1 minuto de lectura

Necesito obtener el archivo de la terminal, sé que el comando se verá así:

./a.out < fileName.txt

No estoy seguro de cómo usar fgets() en mi programa para usar el archivo solicitado desde la terminal.

El uso de la redirección envía el contenido del archivo de entrada a stdin, por lo que debe leer desde stdin dentro de su código, por lo que algo así como (se omite la verificación de errores para mayor claridad)

#include <stdio.h>

#define BUFFERSIZE 100

int main (int argc, char *argv[])
{
    char buffer[BUFFERSIZE];
    fgets(buffer, BUFFERSIZE , stdin);
    printf("Read: %s", buffer);
    return 0;
}

1.) cierra stdin y luego le asigna un controlador de archivos diferente 2.) reemplaza stdin con cualquier otro controlador de archivos usando la función dup2, puede lograrlo

  • Esto está mal. Si está redirigiendo la entrada, debe leer desde stdin sin cerrarlo.

    – Barmar

    11 de febrero de 2020 a las 0:31

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad