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.
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