프로그래밍/C

EOF(End Of File)

msh1307 2022. 3. 31. 22:37

EOF는 End Of File의 약자로 -1로 정의되어있다.
파일의 끝을 탐지하는 방법은 운영체제마다 다르지만, C언어에서는 EOF를 통해서 파일의 끝을 탐지하고 키보드를 통한 입력의 끝도 알려준다. 함수 호출시 에러가 있는지 없는지에 대한 반환값을 검사할 때 주로 사용되고 이는 신뢰성있는 코드를 작성하는데 도움을 준다.

키보드를 대상으로 하는 getchar나 scanf같은 함수들은 두가지 경우에 EOF를 반환한다.
1) 함수 호출을 실패할때
2) 유닉스는 Ctrl + D, 윈도우는 Ctrl + Z를 통해서 EOF를 발생시킬때
키보드의 입력에서 엔터도 결국은 문자라서 끝을 알려줄 방법이 없다. 때문에 위와같은 특정 키를 입력해서 EOF를 발생시킨다.

외외로 평소에 반환 값이 있는지 몰랐던 함수들이 꽤 있었다.
printf의 경우에는 이스케이프 시퀸스를 포함한 출력한 문자의 개수가 반환 값이다.
scanf는 포맷 형식에 알맞는 입력의 개수가 함수의 반환 값이다.

scanf함수는 또한 에러가 발생하면, EOF(-1)을 반환한다. 이것을 이용해서 이런식으로 코드를 짤 수 있다.

문제를 풀면서 입력이 언제까지 들어오는지를 알 수 없을때 이런식으로 EOF를 이용할 수 있다.

'프로그래밍 > C' 카테고리의 다른 글

size_t, pid_t,ssize_t...  (0) 2022.05.03
open, read 시스템콜을 이용한 파일 입출력  (0) 2022.05.03
scanf, gets, fgets 차이  (0) 2022.04.01
함수 호출 방식  (0) 2022.03.29
C 배열 접근  (0) 2022.03.25