physical Files and Logical Files
1. Physical File
- 실제로 디스크나 저장 장치에 존재하는 파일.
- 운영체제(OS)가 파일 시스템을 통해 관리.
- 파일 디렉토리에 존재하며, OS의 인터페이스를 통해 접근 가능.
2. Logical File
- 프로그램이 인식하는 파일.
- 프로그램은 어떤 물리적 파일이 사용될지 알지 못한 채 논리적 파일을 다룸.
Physical files과 Logical files의 연결
1. Mainframe era : Job Control Language 을 통해 파일 연결
2. Unix and DOS era
- 프로그램 내 명령으로 파일 연결(os 시스템 호출 또는 프로그래밍 언어의 일부)
- ex) select inp_file assign to "myfile.dat" (in COBOL)
fd = open("myfile.dat", O_RDWR) (in C)
파일 관리를 위한 System Calls vs C Libraries
1. System Calls (운영체제 시스템 호출)
- 파일을 열고(open), 읽고(read), 쓰고(write) 등을 위한 시스템 호출
- 파일 디스크립터(fd)를 반환하여 파일을 다룸
2. C Libraries (c 표준 라이브러리)
- c언어에서 제공하는 라이브러리 함수들
- 스트림(stream) 기반으로 관
기능 | 시스템 호출 (System Calls) | C 라이브러리 (stdio.h) |
파일 열기 | fd = open(filename, flags [, pmode]) | fp = fopen(filename, type) |
파일 닫기 | close(fd) | fclose(fp) |
파일 위치 이동 | lseek(fd, offset, origin) | fseek(fp, offset, origin) |
파일 읽기 | read(fd, buf, size) | fread(buf, num, len, fp) |
파일 쓰기 | write(fd, buf, size) | fwrite(buf, num, len, fp) |
Opening files
파일 열기 :
1. 기존 파일을 열기
2. 새로운 파일을 만들고 열기
- fd: 파일 디스크립터(정수)
- filename: 파일 이름(문자열)
- flags: 파일 열기 옵션
- O_APPEND: 기존 파일 끝에 추가
- O_CREAT: 새 파일 생성
- O_EXCL: 파일이 존재하지 않을 때만 생성
- O_RDONLY: 읽기 전용
- O_RDWR: 읽기 및 쓰기
- O_TRUNC: 기존 내용을 지우고 새로 작성
- O_WRONLY: 쓰기 전용
- pmode: 보호 모드(파일 권한 설정)
- ex) pmode = 0751 (3자리 8진수로 설정) => [소유자, 그룹, 기타 사용자]의 읽기, 쓰기, 실행 권한 설정
Closing files
파일 닫기 :
- 파일을 닫음으로써 논리적 파일 이름이나 파일 디스크립터를 다른 파일에 사용할 수 있도록 함
- 파일에 모든 것이 쓰였다는 것을 확실하게 해준다
- 파일을 닫지 않으면 메모리 누수 가능성이 생김
+ fflush (파일을 작성 도중에 사용하면 파일이 확실하게 작성되게 해준다.)
ex) close(fd); (fd : file descriptor)
Reading & Writing
입력/출력 작업 :
- 저수준 시스템 호출
- c 표준 라이브러리 함수
Seeking
파일 내 위치 이동 :
- lseek(source_file, offset, origin) or fseek(file, byte_offset, origin) 을 사용하여 파일 내 특정 위치로 이동
- origin은 SEEK_SET, SEEK_CUR, SEEK_END로 지정 가능
예제 프로그램
다음 프로그램은 파일을 읽고 특정 위치(501 바이트)부터 데이터를 출력하는 예제임
프로그램 동작 과정
1. 사용자에게 파일명을 입력받음
2. 입력 받은 파일을 읽기모드(O_RDONLY)로 열기
3. 501 바이트 위치로 이동(lseek)
4. 파일 끝까지 한 글자씩 읽어서 출력 (read & write)
5. 파일 닫기 (close(fd))
'파일처리' 카테고리의 다른 글
파처 ch5) Managing Files of Records (0) | 2025.04.15 |
---|---|
파처 ch4) Fundamental File Structure Concepts (0) | 2025.04.10 |
파일처리 ch4) Flash memory overview and Hybrid Mapping (0) | 2025.03.25 |
파일처리 ch3) 보조 저장장치와 시스템 소프트웨어 (1) | 2025.03.23 |
파일처리 ch1) 파일 구조 설계와 명세 소개 (1) | 2025.03.23 |