본문 바로가기

Programming/C language

Chapter 14. 파일 입출력

FIle 

User mode에서 Kernel mode로 진입할 수 있는 '인터 페이스' 

file 마다 고유의 I/O buffer가 존재한다. 

논리구조가 '선형'구조이다. 

생성시 크기가 0이며, 내용을 쓰면 점점 커진다. 


변수, 메모리 동적 할당  =>  RAM

File     =>    Disk


종류

Data file (mp3, avi, ppt...) 

Executable file (exe, dll...)



File System

User가 File을 다룰 수 있도록 방법을 제공해주는 것 (open, close, I/O)


fputs 등의 함수로 file에 뭔가를 쓴다고 하지만 사실 file buffer에 쓰는 것이며, fclose() 할 때 file buffer에 있는 내용들이 file에 모두 쓰여진다. 




연습문제)


1)  표준입력장치(stdin)에서 문자열을 입력받은 후, 표준출력장치(stdout)로 출력하는 프로그램을 작성하세요. 

단, 반드시 fgets()와 fputs() 함수를 사용하세요. 



Q )




2)  현재 경로에서 'TestFile.txt' 텍스트 파일을 연 후, 사용자가 입력한 문자열을 뒤에 이어서 추가한 후 다시 저장하는

프로그램을 작성하세요. 


Q )



 


3)  현재 경로에서 'TestFile.txt' 텍스트 파일을 연 후, 원본 파일에서 행 단위로 문자열을 읽어 들여 대상 파일에 

복사하는 프로그램을 작성하세요. 단, 대상 파일도 현재 경로에 생성하며, 파일명은 'DstFile.txt'로 합니다. 



Q )





4)  main() 함수의 인자로 두 바이너리 파일의 경로를 입력받아 바이너리 모드로 열고, 원본 파일의 내용을 읽어들여

대상 파일로 복사하는 프로그램을 작성하세요. 

단, 복사의 진행 과정을 백분율로 화면에 출력하고, 한 번에 4KB 단위로 복사합니다. 그리고 대상 파일이 

존재 유무에 상관없이 무조건 생성하며, 파일의 크기가 최대 100MB 이상인 경우는 고려하지 않습니다. 



Q )