diff options
Diffstat (limited to 'boehm-gc/if_not_there.c')
-rw-r--r-- | boehm-gc/if_not_there.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/boehm-gc/if_not_there.c b/boehm-gc/if_not_there.c new file mode 100644 index 000000000..8691e9259 --- /dev/null +++ b/boehm-gc/if_not_there.c @@ -0,0 +1,41 @@ +/* Conditionally execute a command based if the file argv[1] doesn't exist */ +/* Except for execvp, we stick to ANSI C. */ +# include "private/gcconfig.h" +# include <stdio.h> +# include <stdlib.h> +# include <unistd.h> +#ifdef __DJGPP__ +#include <dirent.h> +#endif /* __DJGPP__ */ + +int main(argc, argv, envp) +int argc; +char ** argv; +char ** envp; +{ + FILE * f; +#ifdef __DJGPP__ + DIR * d; +#endif /* __DJGPP__ */ + if (argc < 3) goto Usage; + if ((f = fopen(argv[1], "rb")) != 0 + || (f = fopen(argv[1], "r")) != 0) { + fclose(f); + return(0); + } +#ifdef __DJGPP__ + if ((d = opendir(argv[1])) != 0) { + closedir(d); + return(0); + } +#endif + printf("^^^^Starting command^^^^\n"); + fflush(stdout); + execvp(argv[2], argv+2); + exit(1); + +Usage: + fprintf(stderr, "Usage: %s file_name command\n", argv[0]); + return(1); +} + |