#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; } 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(!fgets(ans, 10, stdin) || ans[0] == '\n'); 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); }