[시스템 프로그래밍] Low-level File IO(3) - File access methods
파일 접근 방법에는 순차 접근(Sequential access)와 직접 접근(Directed access)가 있습니다.
순차접근은 fgetc() 와 같은 함수를 사용하여 File을 bytes 단위로 순서대로 접근하는 방법이고, 직접 접근은 lseek(), seek()와 같은 함수를 통해 원하는 위치로 직접 접근하는 방법입니다.
이번 포스팅에서는 직접 접근에 대해 알아보도록 하겠습니다.
1. $lseek()$
$ man -s 2 lseek
- lseek(int fd, off_t offset, int whence);
fd(file descriptor) : 대상 file descriptor
offset : 이동시킬 byte 수 (양수 or 음수)
whence : 기준 위치 (어디서부터 읽을지)
return : 이동 후의 offset (이동 후 위치), if error, return -1
whence는 SEEK_SET, SEEK_CUR, SEEK_END의 세 가지 인자를 받습니다.
SEEK_SET : 파일의 시작
SEEK_CUR : 현재 위치
SEEK_END : 파일의 끝
lseek(fd, 5, SEEK_SET);
// 파일의 시작에서 5번째 byte로 이동
lseek(fd, 0, SEEK_END);
// 파일의 끝으로 이동
cur_offset = lseek(fd, 0, SEEK_CUR);
// cur_offset : 현재 위치
반응형
'[컴퓨터공학] > [시스템 프로그래밍]' 카테고리의 다른 글
[시스템 프로그래밍] 파일 정보 검색(1) - inode 정보 검색 (2) | 2022.10.15 |
---|---|
[시스템 프로그래밍] Low-level File IO(2) - Read, Write (0) | 2022.09.22 |
[시스템 프로그래밍] Low-level File IO(1) - Open, Close (0) | 2022.09.22 |