스트림 제어Controlling Streams

fopen은 형식이 FILE인 개체의 주소를 반환합니다.fopen returns the address of an object of type FILE. 이 주소를 여러 라이브러리 함수에 대한 stream 인수로 사용하여 열려 있는 파일에 대한 다양한 작업을 수행합니다.You use this address as the stream argument to several library functions to perform various operations on an open file. 바이트 스트림의 경우 fgetc를 호출하여 각 문자를 읽는 것처럼 모든 입력이 수행되고 fputc를 호출하여 각 문자를 쓰는 것처럼 모든 출력이 수행됩니다.For a byte stream, all input takes place as if each character is read by calling fgetc, and all output takes place as if each character is written by calling fputc. 와이드 스트림의 경우 fgetwc를 호출하여 각 문자를 읽는 것처럼 모든 입력이 수행되고 fputwc를 호출하여 각 문자를 쓰는 것처럼 모든 출력이 수행됩니다.For a wide stream, all input takes place as if each character is read by calling fgetwc, and all output takes place as if each character is written by calling fputwc.

fclose를 호출하여 파일을 닫을 수 있으며 이후 FILE 개체의 주소가 잘못됩니다.You can close a file by calling fclose, after which the address of the FILE object is invalid.

FILE 개체는 다음과 같이 스트림의 상태를 저장합니다.A FILE object stores the state of a stream, including:

  • 오류 표시기는 읽기 또는 쓰기 오류를 발견한 함수에 의해 0이 아닌 값으로 설정됩니다.An error indicator set nonzero by a function that encounters a read or write error.

  • 파일 끝 표시기는 읽는 동안 파일 끝을 발견한 함수에 의해 0이 아닌 값으로 설정됩니다.An end-of-file indicator set nonzero by a function that encounters the end of the file while reading.

  • 파일에서 위치 지정 요청을 지원할 수 있는 경우 파일 위치 표시기는 읽거나 쓸 스트림의 다음 바이트를 지정합니다.A file-position indicator specifies the next byte in the stream to read or write, if the file can support positioning requests.

  • 스트림 상태는 스트림이 읽기 및/또는 쓰기를 허용할지 여부 및 스트림이 바인딩 해제되었는지, 바이트 지향인지, 와이드 지향인지를 지정합니다.A stream state specifies whether the stream will accept reads and/or writes and whether the stream is unbound, byte oriented, or wide oriented.

  • 변환 상태는 부분적으로 어셈블되거나 생성된 일반화 멀티바이트 문자의 상태는 물론 파일의 바이트 시퀀스에 대한 이동 상태도 기억합니다.A conversion state remembers the state of any partly assembled or generated generalized multibyte character, as well as any shift state for the sequence of bytes in the file).

  • 파일 버퍼는 라이브러리 함수가 스트림에 대한 읽기 및 쓰기 작업의 성능을 향상시키는 데 사용할 수 있는 배열 개체의 주소 및 크기를 지정합니다.A file buffer specifies the address and size of an array object that library functions can use to improve the performance of read and write operations to the stream.

    FILE 개체 또는 해당 개체와 함께 사용하기 위해 지정하는 파일 버퍼에 저장된 값을 변경하지 마십시오.Do not alter any value stored in a FILE object or in a file buffer that you specify for use with that object. FILE 개체를 복사하고 간단하게 해당 복사본의 주소를 라이브러리 함수에 대한 stream 인수로 사용할 수 없습니다.You cannot copy a FILE object and portably use the address of the copy as a stream argument to a library function.

참고 항목See Also

파일 및 스트림Files and Streams