Diff for /libaitio/example/test_exec.c between versions 1.1 and 1.2

version 1.1, 2013/12/05 12:45:53 version 1.2, 2013/12/15 22:57:20
Line 0 Line 1
   #include <stdio.h>
   #include <unistd.h>
   #include <string.h>
   #include <errno.h>
   #include <aitio.h>
   #include <sys/wait.h>
   
   
   int
   main(int argc, char **argv)
   {
           prog_t *p;
           int f;
           int ret = 0;
           char str[BUFSIZ];
   
           if (argc < 2)
                   return 1;
   
           p = io_progInit(argv[1], 3, 10);
           if (!p) {
                   ELIBERR(io);
                   return 2;
           } else if ((ret = io_progCheck(p, 0))) {
                   printf("0.exited procs=%d\n", ret);
                   goto end;
           } else {
                   printf("wait for keystroke %p ", p);
                   getchar();
           }
   
           ret = io_progCheck(p, 0);
           if (ret) {
                   printf("1.exited procs=%d\n", ret);
                   goto end;
           }
   
           printf("last=%d\n", array_Last(p->prog_fds));
   
           ret = io_progGrow(p, 8);
           printf("+grow_progs=%d\n", ret);
   
           printf("wait for keystroke %p ", p);
           getchar();
   
           ret = io_progVacuum(p, 5);
           printf("+vacuum_progs=%d\n", ret);
   
           printf("wait for keystroke %p ", p);
           getchar();
   
   again:
           f = io_progAttach(p, 0);
           printf("f=%d\n", f);
           write(f, "v\n", 1);
           memset(str, 0, sizeof str);
           while (read(f, str, sizeof str) > 0) {
                   printf(">>> %s", str);
                   memset(str, 0, sizeof str);
                   read(0, str, sizeof str);
                   if (*str == '.')
                           break;
                   write(f, str, strlen(str));
           }
           io_progDetach(p, f);
   
           printf("(r) wait for keystroke %p ", p);
           if (getchar() == 'a')
                   goto again;
   end:
           io_progDestroy(&p);
           return ret;
   }

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>