저수준 file 입출력의 read/write –disk와 user가 설정한 buffer에서 자료를 읽고쓴다.
Buffer file입출력의 getc/putc 나 fgets/fputs
- 시스템이 설정한 buffer 와 user가 정한 변수와의 사이에서 자료를 읽고 쓴다
- Buffer와 disk간의 자료를 읽고 쓰는 것은 시스템이 필요에 따라서 (buffer 가empty 나 full일 때)자동적으로 행한다
입출력 함수 분류표
대 상
|
입 출 력
|
고 수 준
|
(메모리내)
문자열
|
저수준
|
|
표준파일
(표준 입출력에 대한 I/O)
|
스트림파일
(file 입출력에 대한 I/O)
|
바이너리파일
|
문자
|
입력
|
getchar()
|
getc(stream)
|
|
|
gfetc(stream)
|
|
|
출력
|
putchar()
|
putc(c,stream)
|
|
|
fputc(c,stream)
|
|
|
unget(c,stream)
|
|
|
문
자
열
|
행
|
입력
(stdin 으로 부터 문자열을str로 시작되는 버퍼에 읽어드린다)
\n 대신에 \0가 부가되어 저장
|
gets(str)
|
fgets(buf, max, stream)
|
|
read(fd, buf,nbyte)
|
단어
|
getw(stream)
|
|
블록
|
fread(ptr, size, nitems,stream)
|
|
행
|
출력
(str로 보인 버퍼에 기억된 문자열을stdout에 출력한다.)
\0 을 만나면\n으로 바꿔서 출력
|
puts(str)
|
fputs(buf, stream)
|
|
write(fd, buf,nbyte)
|
단어
|
putw(w,stream)
|
|
블록
|
fwrite(ptr, size, nitems,stream)
|
|
레코드
|
입력
|
scanf(format,[args])
|
fscanf(stream, format,[args])
|
sscanf(str, format,[args])
|
|
출력
|
printf(format,[args])
|
fprintf(stream, format,[args])
|
sprintf(str, format,[args])
|
|
파일
|
열기
|
(자동)
|
fopen(filename,mode)
|
|
|
freopen(filename,mode,stream)
|
|
|
fdopen(fd,mode)
|
|
|
닫기
|
(자동)
|
fclose(stream)
|
|
|
fflush(stream)
|
|
|
탐색
|
(자동)
|
fseek(stream,offset,mode)
|
|
open
|
ftell(stream)
|
|
close
|
rewind(stream)
|
|
lseek(fd,offset, mode)
|