파일 및 스트림Files and Streams

프로그램은 파일을 읽고 써서 대상 환경과 통신합니다.A program communicates with the target environment by reading and writing files. 파일은 다음일 수 있습니다.A file can be:

  • 반복적으로 읽고 쓸 수 있는 데이터 집합A data set that you can read and write repeatedly.

  • 프로그램에 의해 생성되는 바이트 스트림(예: 파이프라인)A stream of bytes generated by a program (such as a pipeline).

  • 주변 장치와 주고받은 바이트 스트림A stream of bytes received from or sent to a peripheral device.

    마지막 두 항목은 대화형 파일입니다.The last two items are interactive files. 파일은 일반적으로 프로그램과 상호 작용하기 위한 주요 수단입니다.Files are typically the principal means by which to interact with a program. 이러한 모든 종류의 파일은 거의 동일한 방법(라이브러리 함수 호출)으로 조작합니다.You manipulate all these kinds of files in much the same way — by calling library functions. 이러한 함수 대부분을 선언할 때는 표준 헤더 STDIO.H를 포함합니다.You include the standard header STDIO.H to declare most of these functions.

    파일에 대해 작업을 수행하려면 많은 경우 먼저 파일을 열어야 합니다.Before you can perform many of the operations on a file, the file must be opened. 파일을 열면 해당 파일이 스트림과 연결됩니다. 스트림은 다양한 종류의 파일 간에 존재하는 많은 차이점에 주석을 다는 표준 C 라이브러리 내 데이터 구조입니다.Opening a file associates it with a stream, a data structure within the Standard C Library that glosses over many differences among files of various kinds. 라이브러리는 FILE 형식의 개체에 각 스트림의 상태를 유지합니다.The library maintains the state of each stream in an object of type FILE.

    대상 환경은 프로그램을 시작하기 전에 세 가지 파일을 엽니다.The target environment opens three files before program startup. 두 가지 인수를 사용하여 라이브러리 함수 fopen, _wfopen을 호출하면 파일을 열 수 있습니다.You can open a file by calling the library function fopen, _wfopen with two arguments. fopen 함수는 사용되지 않습니다. 대신 fopen_s, _wfopen_s를 사용하세요. 첫 번째 인수는 파일 이름이고,(The fopen function has been deprecated, use fopen_s, _wfopen_s instead.) The first argument is a filename. 두 번째 인수는 다음을 지정하는 C 문자열입니다.The second argument is a C string that specifies:

  • 파일에서 데이터를 읽을 계획인지, 파일에 데이터를 쓸 계획인지, 아니면 두 작업을 모두 수행할 계획인지 여부Whether you intend to read data from the file or write data to it or both.

  • 파일에 대해 새 콘텐츠를 생성하거나 파일이 아직 없는 경우 파일을 만들 계획인지, 아니면 기존 콘텐츠를 제자리에 둘 것인지 여부Whether you intend to generate new contents for the file (or create a file if it did not previously exist) or leave the existing contents in place.

  • 파일에 쓸 때 기존 콘텐츠가 변경될 수 있는지, 아니면 파일의 끝에 바이트를 추가만 할지 여부Whether writes to a file can alter existing contents or should only append bytes at the end of the file.

  • 텍스트 스트림을 조작할지, 아니면 이진 스트림을 조작할지 여부Whether you want to manipulate a text stream or a binary stream.

    파일이 열리면 스트림이 바이트 지향(바이트 스트림)인지, 아니면 와이드 지향(와이드 스트림)인지 확인할 수 있습니다.Once the file is successfully opened, you can then determine whether the stream is byte oriented (a byte stream) or wide oriented (a wide stream). 스트림은 처음에 바인딩되어 있지 않습니다.A stream is initially unbound. 스트림에 대해 특정 함수를 호출하면 바이트 지향 스트림이 되고 다른 특정 함수를 호출하면 와이드 지향 스트림이 됩니다.Calling certain functions to operate on the stream makes it byte oriented, while certain other functions make it wide oriented. 설정된 후에는 fclose 또는 freopen을 호출하여 닫힐 때까지 스트림이 자신의 성향을 유지합니다.Once established, a stream maintains its orientation until it is closed by a call to fclose or freopen.

    © 1989-2001. 작성: P.J.© 1989-2001 by P.J. Plauger 및 Jim Brodie.Plauger and Jim Brodie. All rights reserved.All rights reserved.

참고 항목See Also

텍스트 및 이진 스트림 Text and Binary Streams
바이트 및 와이드 스트림 Byte and Wide Streams
스트림 제어 Controlling Streams
스트림 상태Stream States