home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume7 / rvi / part4 / rvtest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  711 b   |  44 lines

  1. #include <stdio.h>
  2. #include <signal.h>
  3. /*
  4.  * Loopback test.   This program forks a copy of rvi and connects it to
  5.  * a local ``ed'' program.
  6.  */
  7.  
  8. main(argc, argv)
  9. int argc;
  10. char **argv;
  11. {
  12.     int in[2], out[2];
  13.     char ibuf[12], obuf[12];
  14.  
  15.     if (argv[1] == NULL)
  16.         argv[1] = "";
  17.  
  18.     pipe(in);
  19.     pipe(out);
  20.  
  21.     sprintf(ibuf, "%d", in[1]);
  22.     sprintf(obuf, "%d", out[0]);
  23.     signal(SIGPIPE, SIG_IGN);
  24.  
  25.     if (fork() == 0) {
  26.         close(in[0]);
  27.         close(out[1]);
  28.         execlp("rvi", "rvi", obuf, ibuf, argv[1], "-l", NULL);
  29.         execl("/u/aek/bin/rvi", "rvi", obuf, ibuf, argv[1], "-l", NULL);
  30.         perror("exec rvi");
  31.         _exit(1);
  32.     }
  33.  
  34.     close(in[1]);
  35.     close(out[0]);
  36.  
  37.     close(0);
  38.     dup(in[0]);
  39.     close(1);
  40.     dup(out[1]);
  41.  
  42.     execlp("ed", "ed", NULL);
  43. }
  44.