c++ fread 예제

c++ fread 예제

2 agosto, 2019

기술적으로, 예 그것은 메모리 누수입니다. 그러나 프로세스에 의해 할당 된 모든 메모리는 해당 프로세스가 종료 될 때 자동으로 해제되므로이 예제에서는 free (및 fclose)에 대한 호출이 실제로 필요하지 않습니다. 스트림에서 데이터를 읽습니다. 이 버전의 fread에는 CRT의 보안 기능에 설명된 대로 보안 기능이 향상되었습니다. C++의 fread() 함수는 스트림에서 데이터 블록을 읽습니다. 이 함수는 먼저 지정된 입력 스트림의 크기 바이트 크기의 개체 수를 읽습니다. 성공한 경우 읽은 바이트의 총 양(크기*개수)입니다. 아니오에 따르면. 문자가 읽히면 표시기 파일 위치가 증가합니다. 읽은 개체가 간단히 복사할 수 없는 경우 동작이 정의되지 않고 크기 또는 개수 값이 0이면 이 프로그램은 단순히 0을 반환합니다. C 라이브러리 함수 size_t fread(보이드 *ptr, size_t 크기, size_t nmemb, FILE *stream)는 주어진 스트림의 데이터를 ptr에 의해 가리키는 배열로 읽습니다. 크기 또는 개수가 0이면 fread는 0을 반환하고 다른 작업을 수행하지 않습니다. 파일 처리에서 fread() 함수를 통해 입력 스트림 파일 이름에서 버퍼라는 배열에 이르는 크기 길이의 개체 수를 읽습니다.

파일에서 읽는 개체 수를 반환합니다. 더 적은 개체가 읽히거나 EOF가 발생하기 전에 오류가 발생하면 오류가 발생합니다. 텍스트 모드 스트림에서 사용할 경우 요청된 데이터 양(즉, 크기 * 개수)이 내부 FILE * 버퍼 크기보다 크거나 같으면(기본적으로 setvbuf를 사용하여 구성할 수 있는 4096바이트) 스트림 데이터가 사용자 제공 버퍼에 직접 복사됩니다. 및 줄 바호 변환은 해당 버퍼에서 수행됩니다. 변환된 데이터는 버퍼에 복사된 스트림 데이터보다 짧을 수 있기 때문에 버퍼[return_value * 크기](return_value가 fread에서 반환 값인 경우)의 데이터는 파일에서 변환되지 않은 데이터를 포함할 수 있습니다. 따라서 버퍼의 의도가 C 스타일 문자열로 작동하려는 경우 buffer[return_value * size]에서 문자 데이터를 null-terminate하는 것이 좋습니다. 텍스트 모드와 바이너리 모드의 효과에 대한 자세한 내용은 fopen을 참조하십시오. 이 예제에서는 (exit()를 호출하여 프로그램을 종료하면 연결된 모든 메모리가 해제되므로 메모리 누수되지 않습니다. 여기서는 구문과 함께 C 언어로 라이브러리 헤더 stdio.h의 fread() 함수에 대해 알아봅니다.

2019년 1월 11일 스트림에 Souvik Saha에 의해 제출 – 이것은 입력 스트림을 지정하는 FILE 개체에 대한 포인터입니다. 우리가 컴파일하고 파일 file.txt을 만들고이 자습서입니다 내용을 작성하는 위의 프로그램을 실행하자. 그 후, 우리는 fseek() 함수를 사용하여 파일의 시작 부분에 대한 쓰기 포인터를 재설정하고 다음과 같은 파일 콘텐츠를 준비 – 오류가 발생하면, 스트림에 대한 파일 위치 표시기의 결과 값은 불확실하다.