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

  FORUM HardWare.fr
  Programmation
  C

  [C] redirection gauche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] redirection gauche

n°2221892
archseven
Posté le 08-03-2014 à 22:06:14  profilanswer
 

bon voilà je viens vers vous car j'ai une redirection gauche a coder en c pour mon projet minishell
 
j'ai tenté plusieurs trucs mais quand j'execute mon shell et je teste cat < file le cat bloque le read du file fichier et le processus apparement donc je en sais pas comment écrire dans le cat
 
je voulais savoir globalement comment faire un read et un write pendant que le processus de cat est lancé si je dois faire un pipe ou pas ?
 
merci

mood
Publicité
Posté le 08-03-2014 à 22:06:14  profilanswer
 

n°2221895
Farian
Posté le 08-03-2014 à 22:18:43  profilanswer
 

Bonjour !
 
Votre question n'est pas super claire, je ne suis pas certain d'avoir tout compris :)
 
Pour les redirections, classiquement on ouvre le fichier et on change l'entrée / la sortie / l'erreur standard avec les fonctions dup ou dup2.
 
Le pipe n'est utilisé que pour coder le '|' du shell, le pipe étant créé avant le "fork", chaque processus ferme l'extrémité du pipe qu'il n'utilise pas et redirige l'entrée ou la sortie standard avec dup/dup2.
 
Bonne continuation !

n°2221896
archseven
Posté le 08-03-2014 à 22:25:10  profilanswer
 

ok bah merci parce que j'ai codé les redirections droites avec un pipe, je vais voir comment faire sans mais ca me semble plus logique en effet.

n°2221899
archseven
Posté le 08-03-2014 à 22:53:51  profilanswer
 

en y refléchissant, je comprend pas la logique
 
dans la redirection droite par exemple : cat Makefile > file
 
j'execute cat ce qui va terminer le processus donc si je fais un dup2 sans faire le pipe, dup2 ne pourra rien copier puisque les I/O seront fermés...
 
il doit y avoir un truc que je n'ai pas compris

n°2221900
Farian
Posté le 08-03-2014 à 23:05:25  profilanswer
 

Ma vision, pour exécuter cette commande :  
 
Vous ouvrez le fichier "file" en écriture, vous sauvegardez la sortie standard, vous fermez la sortie standard et la branchez sur le fd de file avec dup.
 
Vous exécutez le "cat Makefile" comme si il n'y avait pas de redirection,
 
Vous fermez la sortie standard redirigée sur "file", puis restaurez la "vraie" sortie standard que vous aviez sauvegardée au tout début.
 
Et, logiquement, cela fait ce que vous attendez.
 
Ou alors, j'ai tout oublié de ce que j'avais appris sur ces manipulations (cela fait plus de 20 ans que je ne les pratique plus trop :) )
 
Bonne continuation !

n°2221901
archseven
Posté le 08-03-2014 à 23:12:37  profilanswer
 

Merci bien !
 
Je vais essayer de faire ca demain là j'ai trop chercher dans tous les sens je suis ko
 
Bonne continuation .


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

  [C] redirection gauche

 

Sujets relatifs
[HELP] Programme en C !Language C Polynome
[C++] manipulation de tableau a l'aide des references ?Visual C++ 2010 Express et SDL
C# Problème de clé absente du dictionnaire[HELP] Visual C++
[C++] utiliser des classes dans mon codeComment transformer un projet C++ .exe en .DLL pour exporter des fonct
Les variables bases en C++Installation de boost sous visual C++ 2010
Plus de sujets relatifs à : [C] redirection gauche


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