-
C/C++ utime(2)C,C++ & Linux 2020. 5. 19. 12:20728x90
utime(2) 함수 기능
파일의 atime(Access Time), mtime(Modification Time) 을 수정하는 함수입니다.
struct utimbuf 구조
struct utimbuf { time_t actime; // 접근 시간 time_t modtime; // 수정 시간 };
함수 원형
#include <utime.h> #include <sys/types.h> int utime(const char *filepath, const struct utimbuf *time);
매개변수
filepath
대상 파일의 경로
time
변경될 시간
반환값
성공 시 0 리턴
에러 시 -1 리턴하고 errno 설정
예제
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <utime.h> int main(int argc, char *argv[]) { struct utimbuf time_buf; struct stat statbuf; int fd; for (int i = 1; i < argc; i++) { // 원래 atime, mtime을 가져옴 stat(argv[i], &statbuf); // 파일을 열었기 때문에 access time이 갱신됨 fd = open(argv[i], O_RDWR | O_TRUNC); close(fd); // 하지만 time_buf에 갱신되기 전의 atime, mtime 을 설정 time_buf.actime = statbuf.st_atime; time_buf.modtime = statbuf.st_mtime; // 갱신되기 전의 시간을 설정하므로 프로그램 실행 후에도 atime, mtime 은 변하지 않음 if (utime(argv[i], &time_buf) < 0) { fprintf(stderr, "utime error\n"); continue; } } exit(0); }
결과
리눅스시스템프로그래밍 저자 : 홍지만
https://book.naver.com/bookdb/book_detail.nhn?bid=14623672
책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)'C,C++ & Linux' 카테고리의 다른 글
C/C++ rmdir(2) (0) 2020.05.19 C/C++ mkdir(2) (0) 2020.05.19 C/C++ readlink(2) (0) 2020.05.18 C/C++ symlink(2) (0) 2020.05.18 C/C++ rename(2) (0) 2020.05.18