Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
pipes et stdin
Envoyé par: maxx

J'ai un programme avec lequel on ne peut pas utiliser d'entrée standard:
programme -e fichier_entrée -s fichier_sortie

Y aurait-il une astuce pour quand même utiliser le programme avec les pipes ?

par exemple:
cat fichier | programme -s fichier_sortie

Poste le Sunday 19 August 2007 11:44:47
Répondre     Citer    
Re: pipes et stdin
Envoyé par: AlSim

programme -e `cat fichier` -s fichier_sortie ?

[catwell.info]

Poste le Sunday 19 August 2007 23:55:14
Répondre     Citer    
Re: pipes et stdin
Envoyé par: AlSim

Après relecture, vu la syntaxe du programme, il faut plutôt donner le nom de fichier en entrée de ton programme (après le -e) et ce que tu veux c'est vraiment un pipe donc un truc du genre serait peut-être plus adapté :

echo "-e fichier" | programme -s fichier_sortie

Il faudrait que tu expliques un peu mieux ce que veut ton programme en entrée et le résultat que tu veux obtenir en fait (par exemple que tu donnes le nom du programme).

[catwell.info]

Poste le Monday 20 August 2007 00:16:27
Répondre     Citer    
Re: pipes et stdin
Envoyé par: tuxce

salut,
lorsque le programme ne prend pas en compte l'entrée ou la sortie standard, tu peux utiliser le pipes nommés:
mkfifo fichier_pipe
si tu lances ton programme de la sorte:
programme -e fichier_pipe -s fichier_sortie
tu pourras envoyer ce que tu veux au pipe:
cat  > fichier_pipe

Attention, un pipe nommé est en lecture/écriture bloquante, c.a.d qu'un:
mkfifo fichier_pipe
cat fichier_pipe
ne te rendra la main qu'une fois qu'un processus aura écrit dans le pipe

Poste le Monday 20 August 2007 00:25:55
Répondre     Citer    
Re: pipes et stdin
Envoyé par: maxx

Merci, c'est exactement ce que je voulais faire. winking smiley

Poste le Monday 20 August 2007 13:34:42
Répondre     Citer    
Re: pipes et stdin
Envoyé par: oudoubah

Concernant les tubes nommés, c'est finalement assez limité : ils ne stockent par défaut que 4ko. Il y a moyen de tuner le système pour avoir des pipes plus volumineuses

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 21 August 2007 13:35:27
Répondre     Citer    
Re: pipes et stdin
Envoyé par: Sve@r

Citation
oudoubah
Concernant les tubes nommés, c'est finalement
assez limité : ils ne stockent par défaut que 4ko.
Il y a moyen de tuner le système pour avoir des
pipes plus volumineuses
Pourquoi faire ??? Si le pipe est plein le processus écrivain passe en attente jusqu'à ce qu'il puisse de nouveau écrire...


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Sunday 26 August 2007 20:57:42
Répondre     Citer    
Re: pipes et stdin

Dans certains cas (quand le programme ne fait pas de seek ni de lecture tty) on peut utiliser /dev/stdin pour l'entrée standard et /dev/stdout pour la sortie standard (zet aussi le repertoire /proc/self/fd/ ), par exemple
premier | programme -e /dev/stdin -s /dev/stdout | dernier

On n'a donc pas forcément besoin d'un FIFO (qui sont bien utiles).

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Wednesday 5 September 2007 22:29:29
Répondre     Citer    
Re: pipes et stdin
Envoyé par: oudoubah

Citation
Sve@r
Pourquoi faire ??? Si le pipe est plein le
processus écrivain passe en attente jusqu'à ce
qu'il puisse de nouveau écrire...

Dans certains cas, ça permet d'améliorer légèrement les perfs.

C'est un peu comme dd ou un montage nfs en laissant la taille des blocks par défaut.

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 6 September 2007 09:59:24
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
pipes et stdin
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons