rename.c 948 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <errno.h>
  2. #include <fcntl.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <sys/stat.h>
  6. #include <unistd.h>
  7. #define TESTFILE "testfile"
  8. int main(int argc, char** argv) {
  9. int ret = 0, fd;
  10. if ((ret = creat(TESTFILE, 0600)) < 0) {
  11. perror("creat");
  12. exit(1);
  13. }
  14. fd = ret;
  15. if ((ret = write(fd, "Hello World", 11)) < 0) {
  16. perror("write");
  17. exit(1);
  18. }
  19. close(fd);
  20. if ((ret = rename(TESTFILE, TESTFILE ".new")) < 0) {
  21. perror("rename");
  22. exit(1);
  23. }
  24. if ((ret = open(TESTFILE ".new", O_RDONLY)) < 0) {
  25. perror("open");
  26. exit(1);
  27. }
  28. fd = ret;
  29. char buffer[12];
  30. if ((ret = read(fd, buffer, 11)) < 0) {
  31. perror("read");
  32. exit(1);
  33. }
  34. buffer[11] = 0;
  35. printf("%s\n", buffer);
  36. close(fd);
  37. if ((ret = unlink(TESTFILE ".new")) < 0) {
  38. perror("unlink");
  39. exit(1);
  40. }
  41. return 0;
  42. }