web-dev-qa-db-fra.com

Comment utiliser la redirection en C pour l'entrée de fichier

Je dois obtenir le fichier depuis le terminal, je sais que la commande va ressembler à:

./a.out < fileName.txt

Je ne suis pas sûr de savoir comment utiliser fgets () dans mon programme pour utiliser le fichier demandé au terminal. 

13
Dexter

L'utilisation de la redirection envoie le contenu du fichier d'entrée à stdin. Vous devez donc lire stdin dans votre code. Quelque chose comme (vérification d'erreur omise pour plus de clarté)

#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;
}
12
Nigel Harper

1.) vous fermez stdin puis lui affectez un autre gestionnaire de fichiers 2.) Remplacez stdin par un autre gestionnaire de fichiers en utilisant la fonction dup2, vous pouvez le réaliser

2
Pratik

Vous n'utilisez pas fgets, vous utilisez gets

La redirection signifie simplement que votre entrée de terminal sera le contenu du fichier. Mais votre programme ne sait pas d’où il vient, car c’est fait par le système d’exploitation.

0
SJuan76