home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / unix / emx / test / system.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-02  |  1001 b   |  52 lines

  1. /* system.c (emx+gcc) */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <process.h>
  7.  
  8. int main (int argc, char *argv[])
  9. {
  10.   int i, len;
  11.   char *p, buf[512];
  12.  
  13.   if (argc == 2 && strcmp (argv[1], "-i") == 0)
  14.     {
  15.       printf ("system: ");
  16.       fflush (stdout);
  17.       if (fgets (buf, sizeof (buf), stdin) == NULL)
  18.         return (1);
  19.       p = strchr (buf, '\n');
  20.       if (p != NULL) *p = 0;
  21.       p = buf;
  22.     }
  23.   else
  24.     {
  25.       len = 1;
  26.       for (i = 1; i < argc; ++i)
  27.         len += strlen (argv[i]) + 1;
  28.       p = malloc (len);
  29.       if (p == NULL)
  30.         {
  31.           perror ("malloc");
  32.           return (1);
  33.         }
  34.       *p = 0;
  35.       for (i = 1; i < argc; ++i)
  36.         {
  37.           if (i > 1)
  38.             strcat (p, " ");
  39.           strcat (p, argv[i]);
  40.         }
  41.     }
  42.   i = system (p);
  43.   if (i < 0)
  44.     {
  45.       perror ("system");
  46.       return (1);
  47.     }
  48.   else
  49.     printf ("Return code = %d\n", i);
  50.   return (0);
  51. }
  52.