|
| |||||||||||||||||||||||||
| ahmakki (21) | |
|
in this code i am tryin to pass the Id to the child process but it doesot work .i think the problem is in wich pipe to close . file : racine.pp #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <iostream> #include <fstream> #include <string.h> #include <sstream> #define R 0 #define W 1 int P2fils1[2]; int f2pere1[2]; void addprocess() { char x[10]; int Id = 11; char msg= "the child id is 11 "; pipe(P2fils1); int pid = fork(); if(pid == 0) { close(f2pere1[W]); sprintf(x,"%d\n",P2fils1[R]); execl("./fils", "./fils",x, NULL); } else { close(P2fils1[W]); } read(P2fils1[R], &msg, sizeof(int)); close(P2fils1[R]); file fils.cpp int main (int argc, char *argv[]) { int msg = 2; pipeRacineToMe = atoi(argv[1]); write(pipeRacineToMe, &msg, sizeof(int)); cout << pipeRacineToMe; close(atoi(argv[2])); } | |
|
Last edited on
|
|
| jsmith (5804) | |
|
Both the parent and the child close the write side of the pipe. You want the child to close the read side instead. | |
|
|
|