Low-level I/O에서 탐색
- 기록/판독 포인터가 있는 곳으로부터, 원하는 위치로 이동가능
- 파일 내에서 특정 위치로 직접 이동하는 행위가 탐색(Seeking)
- Seek(Source_file,Offset,Position)
Source_file => 파일이름
Offset => 파일의 시작으로부터 파일포인터가 이동되기를 원하는 거리의 크기
C Stream(High level I/O)에서 탐색
- fseek 사용
- 메모리 내에 있는 바이트의 배열에서 어떤 임의의 바이트로 이동
#define seek_set 0
#define seek_cur 1
#define seek_end 2
long pos;
fseek(FILE *file,long offset, int origin);
FILE * file;
pos = fseek(file,372L,seek_set);
❗❗ C++(High level I/O)에서의 탐색
- fstream 객체는 두개의 파일포인터 필요
- 입력을 위한 get포인터와 출력을위한 put포인터(seekg,seekp)
- 탐색 연산은 스트림 클래스의 메소드
(ios:;beg(파일의 시작), ios::cur(현재의 위치), ios::end(파일의 끝) )
file.seekg(373,ios::beg);
file.seekp(377,ios::beg);
UNIX의 파일 시스템
![](https://velog.velcdn.com/images%2Fkdo6301%2Fpost%2F1a8e9b09-fd47-4f66-8a2f-194985d7a19f%2Fimage.png)
. = 현재디렉토리
.. = 부모디렉토리
파일로서의 물리적 장치
- UNIX에서 파일은 바이트의 열로서, 키보드나 콘솔같은 장치도 파일로 생각
- UNIX에서 파일은 어떤 물리적인 표현을 갖더라도, 파일에대한 논리적 관점은 동일
- UNIX의 파일은 논리적으로 파일기술자라는 정수로표현
- 키보드, 디스크파일, 자기테이프는 모두 정수로 표현