00001
00002
00003
00004
00005 #ifndef __WVSYSTEM_H
00006 #define __WVSYSTEM_H
00007
00008 #include "wvsubproc.h"
00009
00029 class WvSystem : private WvSubProc
00030 {
00031 public:
00044 WvSystem(const char cmd[],
00045 const char *a0 = NULL,
00046 const char *a1 = NULL,
00047 const char *a2 = NULL,
00048 const char *a3 = NULL,
00049 const char *a4 = NULL,
00050 const char *a5 = NULL,
00051 const char *a6 = NULL,
00052 const char *a7 = NULL,
00053 const char *a8 = NULL,
00054 const char *a9 = NULL,
00055 const char *a10 = NULL,
00056 const char *a11 = NULL,
00057 const char *a12 = NULL,
00058 const char *a13 = NULL,
00059 const char *a14 = NULL,
00060 const char *a15 = NULL,
00061 const char *a16 = NULL,
00062 const char *a17 = NULL,
00063 const char *a18 = NULL,
00064 const char *a19 = NULL
00065 )
00066 {
00067
00068 const char * const argv[] = {
00069 cmd,
00070 a0, a1, a2, a3, a4, a5, a6, a7, a8, a9,
00071 a10, a11, a12, a13, a14, a15, a16, a17, a18, a19,
00072 NULL
00073 };
00074 init(argv);
00075 }
00076
00086 WvSystem(const char * const *argv)
00087 { init(argv); }
00088
00093 virtual ~WvSystem();
00094
00100 int go();
00101
00103 WvSystem &infile(WvStringParm filename);
00104
00106 WvSystem &outfile(WvStringParm filename);
00107
00109 WvSystem &errfile(WvStringParm filename);
00110
00111 private:
00112 bool started;
00113 WvString fdfiles[3];
00114
00115 void init(const char * const *argv);
00116 virtual int fork(int *waitfd);
00117 };
00118
00119
00120 #endif // __WVSYSTEM_H