#include #include #include int main(int argc, char *argv[]) { char *a, ans[10], file[30]; FILE *fp; int i; if (argc-1 == 0) { fprintf(stderr, "usage: %s file [...]\n", argv[0]); return 1; } /* Ensure arguments do not contain newlines. */ for (i = 1; i < argc; i++) for (a = argv[i]; *a; a++) if (*a == '\n') { *a = '*'; fprintf(stderr, "%s contains newline (at *)\n", argv[i]); return 1; } sprintf(file, "/var/tmp/re.%d", getppid()); if (!access(file, F_OK)) { do fprintf(stderr, "%s already exists; overwrite? ", file); while (!gets(ans) || !*ans); if (ans[0] != 'y') return 1; } if (!(fp = fopen(file, "w"))) err(1, "fopen"); for (i = 1; i < argc; i++) { fprintf(fp, "%s\n", argv[i]); printf("%s\n", argv[i]); } fclose(fp); }