12 #define _BUFFER_FILL_PATTERN _SECURECRT_FILL_BUFFER_PATTERN
14 #define _BUFFER_FILL_PATTERN 0
34 size_t const element_count,
51 size_t return_value = 0;
73 size_t const element_count,
74 FILE*
const public_stream
94 unsigned stream_buffer_size =
stream.has_any_buffer()
105 size_t remaining_bytes = total_bytes;
107 while (remaining_bytes != 0)
115 _ASSERTE((
"Inconsistent Stream Count. Flush between consecutive read and write",
stream->_cnt >= 0));
120 unsigned const bytes_to_read = remaining_bytes < static_cast<size_t>(
stream->_cnt)
121 ?
static_cast<unsigned>(remaining_bytes)
122 :
static_cast<unsigned>(
stream->_cnt);
124 if (bytes_to_read > remaining_buffer)
138 remaining_bytes -= bytes_to_read;
139 stream->_cnt -= bytes_to_read;
140 stream->_ptr += bytes_to_read;
141 data += bytes_to_read;
142 remaining_buffer -= bytes_to_read;
147 else if (remaining_bytes >= stream_buffer_size)
151 unsigned const maximum_bytes_to_read = remaining_bytes >
INT_MAX
152 ?
static_cast<unsigned>(
INT_MAX)
153 :
static_cast<unsigned>(remaining_bytes);
159 unsigned const bytes_to_read = stream_buffer_size != 0
160 ?
static_cast<unsigned>(maximum_bytes_to_read - maximum_bytes_to_read % stream_buffer_size)
161 : maximum_bytes_to_read;
163 if (bytes_to_read > remaining_buffer)
187 else if (bytes_read < 0)
195 remaining_bytes -= bytes_read;
197 remaining_buffer -= bytes_read;
210 if (remaining_buffer == 0)
218 *
data++ =
static_cast<char>(
c);
222 stream_buffer_size =
stream->_bufsiz;
226 return element_count;
234 size_t const element_count,
239#pragma warning(suppress:__WARNING_POTENTIAL_BUFFER_OVERFLOW_HIGH_PRIORITY)
248 size_t const element_count,
253#pragma warning(suppress:__WARNING_POTENTIAL_BUFFER_OVERFLOW_HIGH_PRIORITY)
int __cdecl __acrt_stdio_refill_and_read_narrow_nolock(FILE *const stream)
#define _CRT_UNBOUNDED_BUFFER_SIZE
void __cdecl __acrt_stdio_reset_buffer(__crt_stdio_stream const stream)
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
size_t const element_size
#define _BUFFER_FILL_PATTERN
size_t __cdecl fread(void *const buffer, size_t const element_size, size_t const element_count, FILE *const stream)
size_t __cdecl fread_s(void *const buffer, size_t const buffer_size, size_t const element_size, size_t const element_count, FILE *const stream)
size_t __cdecl _fread_nolock(void *const buffer, size_t const element_size, size_t const element_count, FILE *const stream)
size_t __cdecl _fread_nolock_s(void *const buffer, size_t const buffer_size, size_t const element_size, size_t const element_count, FILE *const public_stream)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
_Check_return_ _CRTIMP int __cdecl _fileno(_In_ FILE *_File)
_CRTIMP void __cdecl _unlock_file(_Inout_ FILE *_File)
_CRTIMP void __cdecl _lock_file(_Inout_ FILE *_File)
int CDECL memcpy_s(void *dest, size_t numberOfElements, const void *src, size_t count)
int __cdecl _read_nolock(int const fh, void *const result_buffer, unsigned const result_buffer_size)
wchar_t const *const size_t const buffer_size