탐색(Seeking)

김동웅·2021년 9월 7일
0

File_structrue In C,C++

목록 보기
2/11

Low-level I/O에서 탐색

  • 기록/판독 포인터가 있는 곳으로부터, 원하는 위치로 이동가능
  • 파일 내에서 특정 위치로 직접 이동하는 행위가 탐색(Seeking)
  • Seek(Source_file,Offset,Position)

Source_file => 파일이름
Offset => 파일의 시작으로부터 파일포인터가 이동되기를 원하는 거리의 크기

  • lseek(fd,300,SEEK_SET)

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);
// 파일에서 안으로 372바이트 위치로 이동

❗❗ 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의 파일 시스템

. = 현재디렉토리
.. = 부모디렉토리

파일로서의 물리적 장치

  • UNIX에서 파일은 바이트의 열로서, 키보드나 콘솔같은 장치도 파일로 생각
  • UNIX에서 파일은 어떤 물리적인 표현을 갖더라도, 파일에대한 논리적 관점은 동일
    - UNIX의 파일은 논리적으로 파일기술자라는 정수로표현
    • 키보드, 디스크파일, 자기테이프는 모두 정수로 표현

0개의 댓글

관련 채용 정보