Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment lire un pipe depuis un programe C (Unix)

3 réponses
Avatar
projlin
Bonjour,

Dans un programme C comment lire un Pipe ??

Je m'explique je fait sous linux un programme que j'appelle comme cela

Exemple : ls | mon_programme_C

Donc je suis sensé dans cet exemple récupérer pleins de texte, dans mon programme C

Comment faire ??

Ce qui est passé par un Pipe n'est pas vu comme un argument ?

Merci de votre aide

Bon si en plus il y a une âme charitable en plus d'être calée j'ai la même question
Dans un script bash !

Merci

3 réponses

Avatar
Vincent Lefevre
Dans l'article ,
écrit:

Dans un programme C comment lire un Pipe ??

Je m'explique je fait sous linux un programme que j'appelle comme cela

Exemple : ls | mon_programme_C

Donc je suis sensé dans cet exemple récupérer pleins de texte, dans
mon programme C

Comment faire ??


Un pipe redirige le stdout d'un programme dans le stdin d'un autre.
Il suffit donc de lire dans stdin.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/> - 100%
validated (X)HTML - Acorn Risc PC, Yellow Pig 17, Championnat International
des Jeux Mathématiques et Logiques, TETRHEX, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

Avatar
kilobug

Bonjour,


Salut

Dans un programme C comment lire un Pipe ??


Comme depuis un fichier normal.

Je m'explique je fait sous linux un programme que j'appelle comme cela


Exemple : ls | mon_programme_C


Donc je suis sensé dans cet exemple récupérer pleins de texte, dans
mon programme C


Ce texte arrive sur "stdin", tu peux le lire avec read, fread, fgets,
ou si tu utilises la libc GNU, getline.

Bon si en plus il y a une âme charitable en plus d'être calée j'ai
la même question Dans un script bash !


C'est pareil: tu lis stdin... qqe du genre:
while read line
do
<ce que tu veux, $line contient les lignes une à une>
done

--
Gael Le Mignot "Kilobug" - - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA

Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org

Avatar
DINH Viêt Hoà

Ce texte arrive sur "stdin", tu peux le lire avec read, fread, fgets,
ou si tu utilises la libc GNU, getline.


hum ... déjà read() n'est pas une fonction standard en C, mais POSIX.
Si tu lui proposes en plus des fonctions sorties du chapeau (d'un GNU),
ne faisant partie d'aucun standard, ça va mal aller ...

--
DINH V. Hoa,

"monde de merde" -- Erwan David