00001
00002
00003
00004
00005
00006
00007
00008 #include "wvpipe.h"
00009 #include "wvlog.h"
00010
00011 int main(int argc, char **argv)
00012 {
00013 const char *_av[] = {
00014 "/bin/bash",
00015 NULL
00016 };
00017 const char **av = (argc < 2) ? _av : (const char **)(argv + 1);
00018
00019 WvLog log(av[0]);
00020 WvPipe p(av[0], av, true, false, false);
00021
00022 wvcon->autoforward(p);
00023 p.autoforward(*wvcon);
00024
00025 p.write("test string\r\n");
00026
00027 while (p.isok() && wvcon->isok())
00028 {
00029 if (p.select(100))
00030 p.callback();
00031 if (wvcon->select(100))
00032 wvcon->callback();
00033 }
00034
00035 p.flush_then_close(50000);
00036 while (p.isok())
00037 {
00038 log("Flushing...\n");
00039 if (p.select(1000))
00040 p.callback();
00041 }
00042
00043 if (p.child_exited())
00044 log(WvLog::Notice, "Exited (return code == %s)\n",
00045 p.exit_status());
00046
00047 _exit(0);
00048
00049 return 0;
00050 }