Date: Tue, 20 Dec 1994 07:22:45 +0100 (CET) From: "Roland Exler" Sender: k3a0270 AT pop DOT uni-linz DOT ac DOT at Reply-To: R DOT Exler AT jk DOT uni-linz DOT ac DOT at To: Subject: RE: redirecting stderr... Anton Helm posted the following program to redirect IO some time ago: This source may also be changed easy to meet your needs. Roland ============ begin forwarded message ======================= I use the following program to redirect stderr. It is available from some ftp servers (I dont know where I took it...) /* ** redirect -- feed line to shell with stdin/stdout/stderr redirected ** ** usage -- redirect [-i newin] [-o newout] [-e newerr] command ** ** executes command via the shell, but redirects stdin/stdout/stderr first. ** stdout/stderr are appended, not overwritten. */ #include extern char *strcat( char *, char * ); extern char *strcpy( char *, char * ); extern int system( char * ); extern void exit( int ); extern int errno; char umsg[] = "usage: redirect [-i newin] [-o newout] [-e newerr] command\n"; char emsg[] = "can't redirect %s to %s\n"; void main ( int, char ** ); void main ( argc, argv ) int argc; char **argv; { int result; char buf[5120]; argc--; argv++; if (!argc) { fprintf( stderr, umsg ); exit( 0 ); } while (**argv == '-') { if (*(*argv+1) == 'i') { argc--; argv++; if (!freopen( *argv, "r", stdin )) { fprintf( stderr, emsg, "stdin", *argv ); exit( 1 ); } } else if (*(*argv+1) == 'o') { argc--; argv++; if (!freopen( *argv, "a", stdout )) { fprintf( stderr, emsg, "stdout", *argv ); exit( 1 ); } } else if (*(*argv+1) == 'e') { argc--; argv++; if (!freopen( *argv, "a", stderr )) { fprintf( stderr, emsg, "stderr", *argv ); exit( 1 ); } } else fprintf( stderr, "unknown option %c\n", *(*argv+1) ); argc--; argv++; } if (!argc) { fprintf( stderr, umsg ); exit( 0 ); } strcpy( buf, *argv++ ); while (*argv) strcat( strcat( buf, " " ), *argv++ ); if (result = system( buf )) fprintf( stderr, "exit code = %d, errno = %d\n", result, errno ); exit( 0 ); } Just compile... Tony ============================================================================ Office: ** Private: ** Dipl.-Ing. Anton HELM ** Institut fuer Nachrichtentechnik ** und Hochfrequenztechnik ** Anton HELM Guszhausstr. 25/389 ** Gratian-Marx Str. 7/27 A-1040 Wien ** A-1110 Wien AUSTRIA ** AUSTRIA ** Tel.: +43-1-58801-3520 ** FAX : +43-1-5870583 ** ** email: Anton DOT Helm AT nt DOT tuwien DOT ac DOT at ** tony AT nt DOT tuwien DOT ac DOT at ** ** ============================================================================ ________ __ __ __ __ __ _______ __ __ /__ __/ / / / / / / / / / / / _____/ / \ / / / / / / / / _____ / / __ / / / / / /____ / /\ \ / / / / / / / / /____/ / / / / / / / / / _____/ / / \ \ / / / / / /___/ / / /__/ /__/ / / / / /____ / / \ \/ / /__/ /_______/ /___________/ /_/ /______/ /_/ \__/ ============================================================================ =================== end forwarded message ========================== +---------------------------------------+---------------------------+ I Roland Exler I EMAIL: I I Universitaet Linz I R DOT Exler AT jk DOT uni-linz DOT ac DOT at I I Institut fuer Elektrische Messtechnik I I I Altenbergerstr. 69 I Phone: I I A-4040 Linz, AUSTRIA I + 43 732 2468 9205 I +---------------------------------------+---------------------------+