| smart girl  
 
 
 
 
 Group: Members
 Posts: 4
 Joined: Mar. 2006
 | 
|  | Posted: April 27 2006,23:32 |  |  hi all
 
 I am trying to be much familier with pipes
 
 I tried to write a c program that generates the following output
 
 
 from child:
 I
 want
 to
 print
 this
 line
 twice
 
 from parent:
 I
 want
 to
 print
 this
 line
 twice
 
 
 what I get is
 
 
 from child:
 I
 want
 to
 print
 this
 line
 twice
 
 from parent:
 I
 I
 I
 I
 I
 I
 I
 
 my code is
 
 
 | Code Sample |  | #include<stdio.h>
 #include<string.h>
 
 int main(void){
 int childpid,fd[2],nb,i,j;
 char line[BUFSIZ]="I want to print this line twice";
 char word[BUFSIZ];
 
 
 pipe(fd);
 
 childpid=fork();
 
 if(childpid==0)
 {
 printf("from child:\n");
 
 close(fd[0]);
 
 char *token=strtok(line," ");
 
 while(token!=NULL)
 {
 printf(" %s\n",token);
 
 write(fd[1],token,(strlen(token)+1));
 
 token=strtok(NULL," ");
 
 }
 
 }
 
 else
 {
 
 wait(NULL);
 printf("from parent:\n");
 
 
 
 close(fd[1]);
 
 for( i=0;i<7;i++){
 nb=read(fd[0],word,sizeof(word));
 printf("%s\n",word);
 
 }
 
 }
 
 return 0;
 
 }
 
 | 
 
 can any one tell me what's wronge with this code and how to correct it?
 |