D4GWSTUB.C
上传用户:hlzzc88
上传日期:2007-01-06
资源大小:220k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. /*
  2.    Compile with WATCOM C :
  3. wcl /y /ms /d0 /ox d4gwstub.c
  4. */
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <process.h>
  8. #include <errno.h>
  9. #include <string.h>
  10. // #define QUIET
  11. /* Add environment strings to be searched here */
  12. char *paths_to_check[] = {
  13.         "DOS4GPATH",
  14.         "PATH"
  15. };
  16. char *dos4g_path(void) {
  17.     static char fullpath[80];
  18.     int i;
  19.     for( i = 0; i < sizeof( paths_to_check )/sizeof( paths_to_check[0] ); i++) {
  20.         _searchenv( "dos4g.exe", paths_to_check[i], fullpath );
  21.         if( fullpath[0] ) 
  22.              return( &fullpath );
  23.     }
  24.     for( i = 0; i < sizeof( paths_to_check )/sizeof( paths_to_check[0] ); i++) {
  25.         _searchenv( "dos4gw.exe", paths_to_check[i], fullpath );
  26.         if( fullpath[0] ) 
  27.              return( &fullpath );
  28.     }
  29.     return( "dos4gw.exe" );
  30. }
  31. void main( int argc, char *argv[] ) {
  32.     char        *av[4];
  33.     auto char   cmdline[128];
  34.     av[0] = dos4g_path();               /* Locate the DOS/4G loader */
  35.     av[1] = argv[0];                    /* name of executable to run */
  36.     av[2] = getcmd( cmdline );          /* command line */
  37.     av[3] = NULL;                       /* end of list */
  38. #ifdef QUIET
  39.     putenv( "DOS4G=QUIET" );    /* disables DOS/4G Copyright banner */
  40. #endif
  41.     execvp( av[0], av );
  42.     puts( "Stub exec failed:" );
  43.     puts( av[0] );
  44.     puts( strerror( errno ) );
  45.     exit( 1 );                  /* indicate error */
  46. }