Bonjour,
je ne sais pas si le sujet est bien placé mais je vois pas d'autres endroit où le mettre.

J'essaye de développer en C sous Linux/Debian. J'ai un petit problème de passage d'un pipe dans un exec.

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(pipe(hdPipe))
{
	perror("Erreur de pipe\n");
	exit(1);
}
 
if((idM11=fork())==-1)
{
	perror("(GEREMETRO) Erreur de fork...");
	exit(1);
}
 
if(!idM11)
{
	execlp("./Metro","Metro","1","1",&hdPipe[0],NULL);
	perror("(GEREMETRO)Erreur de exec...");
	exit(1);
}
et dans mon executable Metro voici comment j'essaie de rattrapper mon pipe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
hdPipe[0]=atoi(argv[3]);
hdPipe[1]=atoi(argv[3]);
en sachant qu'il y a d'autre argment passé pour Metro.

Merci d'avance pour vos réponses.