Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
701 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Programme (comme grep) capable de lire depuis stdin

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programme (comme grep) capable de lire depuis stdin

n°2236321
doublebeur​re
Posté le 27-08-2014 à 16:08:18  profilanswer
 

Salut,
 
En termes de code, comment faire pour qu'un programme puisse, au choix, soit lire un nom de fichier:
 

Code :
  1. grep string my_file.txt


 
ou comprendre que ce qu'il recoit sur stdin remplace cet argument:
 

Code :
  1. cat my_file.txt | grep string


 
J'ai essayé de regarder la gestion des arguments dans le code source mais je m'y perd... je ne trouve pas de "STDIN" tout seul par exemple.
 
 
 
 :jap:

mood
Publicité
Posté le 27-08-2014 à 16:08:18  profilanswer
 

n°2236322
theshockwa​ve
I work at a firm named Koslow
Posté le 27-08-2014 à 16:11:03  profilanswer
 

techniquement, ton entrée standard est lisible comme n'importe quel FILE*, donc je ne vois pas ce qui te pose un problème.
Si tu as un argument qui correspond à un nom de fichier, tu appelles ta fonction qui fait le traitement supposé en lui passant ton fichier ouvert sous forme de FILE*. Si l'argument est manquant ou si tu as un argument qui te dit explicitement de regarder l'entrée standard (comme pour vi - par exemple), tu envoies ton STDIN à ta fonction.


---------------
last.fm
n°2236331
doublebeur​re
Posté le 27-08-2014 à 18:38:43  profilanswer
 

Okok je comprends, en fait l'astuce consiste a juste mettre le file_descriptor a STDIN par defaut si jamais le fichier n'est pas fourni...

n°2237157
Sve@r
Posté le 06-09-2014 à 10:08:52  profilanswer
 

Bonjour
 
C'est exactement ça. Typiquement, ça pourrait être un truc du genre
 

Code :
  1. int main(int argc, char *argv[])
  2. {
  3.    FILE *fp;
  4.    if (argc > 1)
  5.        fp=fopen(argv[1], "r" );
  6.    else
  7.        fp=stdin;
  8.  
  9.    while (fgets(..., ..., fp) != NULL)
  10.        ...
  11.  
  12.     if (fp != stdin) fclose(fp);
  13. }


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Programme (comme grep) capable de lire depuis stdin

 

Sujets relatifs
récupération programme xilinx xc8536xlaide pour un programme en c
Difficulté à compiler un programmephp lire clé multidimensionelle ( variable ) sur un array
Programme .bat invisibleProgramme qui utilise un autre programme
[HELP ] Explication d'un Programmetemps d'exécution d'un programme et messages d'affichage
Besoin d'aide pour mon programme javascriptHelp pour un programme java
Plus de sujets relatifs à : Programme (comme grep) capable de lire depuis stdin


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR