#define _POSIX_C_SOURCE 200112L #include #include #include #include #include #include #include #include int main(int argc, char* argv[]) { if (argc < 2) { fprintf(stderr, "usage: %s ", argv[0]); exit(EXIT_FAILURE); } int fd = -1; if ((fd = open(argv[1], O_WRONLY | O_CREAT, S_IRWXU)) < 0) { perror("open"); exit(EXIT_FAILURE); } char* newname = malloc(strlen(argv[1]) + 3); strcpy(newname, argv[1]); strcat(newname, ".r"); int fd2 = -1; if ((fd2 = open(newname, O_RDONLY | O_CREAT, S_IRWXU)) < 0) { perror("open2"); exit(EXIT_FAILURE); } // close(fd2); if (rename(argv[1], newname) < 0) { perror("rename"); exit(EXIT_FAILURE); } return EXIT_SUCCESS; }