[파일구조] Chapter 2. Fundamental File Processing Operations[1]

Zero·2021년 10월 4일

파일 구조

목록 보기
1/13

1. 파일 입출력


구분파일 지시자특징주요함수
저수준 파일 입출력(Low-level I/O)int fd빠르다 , 바이트 단위 입출력open , close ,read , write , lseek
고수준 파일 입출력(High-level I/O)FILE *fp사용하기 쉽다, 버퍼 단위 입출력fopen,fclose,fread,fwrite,fseek

1) 저수준 파일 입출력(Low-level I/O)

(1). 화일 열기(open)

1. 이미 존재하는 화일 열기(open) 💡

  • 화일을 프로그램에 의해 사용될 수 있도록 준비
  • 시작위치는 화일의 처음으로 지정 , 판독(read) , 기록(write) 준비

2. 새로운 화일 생성(creat) 💡

  • 생성 후에 화일이 사용될 준비가 된다는 점이 화일 열기와 동일
  • 생성된 화일은 처음에는 내용이 없기에 , 기록 연산만이 의미가 있음

🔔 pmode 란?

화일에 대한 보호모드 지정

111 000 000
111: 자기자신 권한
000: 그룹의 권한
000: 외부로부터 권한
-> 자기자신은 읽기,쓰기,실행이 모두 가능 But , 그룹, 외부는 불가

(2). 화일 닫기(close)

  • 화일을 닫으면 , 그 논리적 화일 이름은 다른 화일을 위해 사용 가능
  • close fd

(3). 읽기와 쓰기(Reading and Writing)

  • Read : int fd에 있는 정보를 r_size만큼 buf에 저장
  • Write : int fd에 buf에 저장되어 있는 정보를 r_size만큼 기록

2. 고수준 파일 입출력(High-level I/O)

1) 화일 열기 & 닫기 (Opening & Closing files)

2) 읽기 및 쓰기 (Reading and writing)

  • fread : fp에 있는 데이터를 r_size만큼 (1)번 반복하여 buf에 저장
  • fwrite : buf에 있는 데이터를 w_size만큼 (1)번 반복하여 fp에 출력

3. 읽기와 쓰기 : C++ 스트림

C++ 스트림에서 파일에 입력 및 출력해보기


1) 입력

  • ofstream

2) 출력

  • ifstream

3) fstream 으로 입력 및 출력하기

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
	char ch;
	fstream file;
	file.open("a.txt",ios::out);
	file << "hi" << " parkyoungjae" << " bye";
	file.close();
	
	file.open("a.txt",ios::in);
	file.unsetf(ios::skipws);
	while(1){
		file >> ch;
		if(file.fail())break;
		cout << ch;
 	}
	file.close();
	
}

0개의 댓글