#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
void
read_from_pipe(int file)
{
FILE *stream;
int c;
stream=fdopen(file,"r");
while((c=fgetc(stream))!=EOF)
putchar(c);
fclose(stream);
}
void
write_to_pipe(int file)
{
FILE *stream;
stream=fdopen(file,"w");
fprintf(stream,"Hello,world!\n");
fprintf(stream,"Gud bye,world!\n");
fclose(stream);
}
int main (void)
{
pid_t pid;
int mypipe[2];
if (pipe(mypipe))
{
fprintf(stderr,"pipe failed \n");
return EXIT_FAILURE;
}
pid=fork();
if(pid==(pid_t)0)
{
close(mypipe[1]);
read_from_pipe(mypipe[0]);
return EXIT_SUCCESS;
}
else if (pid<(pid_t)0)
{
fprintf(stderr,"forkfailed \n");
return EXIT_FAILURE;
}
else
{
close(mypipe[0]);
write_to_pipe(mypipe[1]);
return EXIT_SUCCESS;
}
}
No comments:
Post a Comment