redirecting stdout and stdin

Bellmore Mark Allen mab718 at aplcen.apl.jhu.edu
Mon Jul 9 01:25:39 AEST 1990


I have seen a few questions reguarding redirection of stdin and
stdout. I apologize if this has been said before. A good 
reference is Advanced UNIX programming by Marc J. Rochkind, 
published by PRENTICE-HALL 1985.
   Here is some sample code:

   #include <stdio.h>
   main()
   {
     int pfd[2];
     char buf[10];

     /* pipe makes pfd[0] for reading and pfd[1] for writing */
     if(pipe(pfd) == -1) {
       perror("pipe");
       exit(-1);
     }
     /* now close stdin to make it available */
     close(0);
     /* dup is GUARANTEED to return the lowest availble fd */
     /* so doing a dup will copy pfd[1] to stdin (fd 1) */
     dup(pfd[0]);
     close(pfd[0]);  /* don't need it anymore */

     /* now reading from stdin will come from the pipe */
     
     strcpy(buf,"TEST PIPE");
     write(fd,buf,9);
     read(0,inbuf,9);
  }

     /* This example is just to show how to redirect stdin */
     /* The same can be done with stdout */



More information about the Comp.lang.c mailing list