ReactOS 0.4.16-dev-1946-g52006dd
stdcheaders.h File Reference
#include <sys/types.h>
Include dependency graph for stdcheaders.h:

Go to the source code of this file.

Functions

size_t fread (void *, size_t, size_t, FILE *)
 
size_t fwrite (const void *, size_t, size_t, FILE *)
 
int strcasecmp (const char *, const char *)
 
int strncasecmp (const char *, const char *, size_t)
 

Function Documentation

◆ fread()

size_t fread ( void ptr,
size_t  size,
size_t  nmemb,
FILE file 
)

Definition at line 3340 of file file.c.

3341{
3342 size_t rcnt=size * nmemb;
3343 size_t read=0;
3344 size_t pread=0;
3345
3346 if(!rcnt)
3347 return 0;
3348
3350
3351 /* first buffered data */
3352 if(file->_cnt>0) {
3353 int pcnt= (rcnt>file->_cnt)? file->_cnt:rcnt;
3354 memcpy(ptr, file->_ptr, pcnt);
3355 file->_cnt -= pcnt;
3356 file->_ptr += pcnt;
3357 read += pcnt ;
3358 rcnt -= pcnt ;
3359 ptr = (char*)ptr + pcnt;
3360 } else if(!(file->_flag & _IOREAD )) {
3361 if(file->_flag & _IORW) {
3362 file->_flag |= _IOREAD;
3363 } else {
3365 return 0;
3366 }
3367 }
3368
3369 if(rcnt>0 && !(file->_flag & (_IONBF | _IOMYBUF | _USERBUF)))
3371
3372 while(rcnt>0)
3373 {
3374 int i;
3375 if (!file->_cnt && rcnt<BUFSIZ && (file->_flag & (_IOMYBUF | _USERBUF))) {
3376 file->_cnt = _read(file->_file, file->_base, file->_bufsiz);
3377 file->_ptr = file->_base;
3378 i = (file->_cnt<rcnt) ? file->_cnt : rcnt;
3379 /* If the buffer fill reaches eof but fread wouldn't, clear eof. */
3380 if (i > 0 && i < file->_cnt) {
3381 get_ioinfo_nolock(file->_file)->wxflag &= ~WX_ATEOF;
3382 file->_flag &= ~_IOEOF;
3383 }
3384 if (i > 0) {
3385 memcpy(ptr, file->_ptr, i);
3386 file->_cnt -= i;
3387 file->_ptr += i;
3388 }
3389 } else if (rcnt > INT_MAX) {
3390 i = _read(file->_file, ptr, INT_MAX);
3391 } else if (rcnt < BUFSIZ) {
3392 i = _read(file->_file, ptr, rcnt);
3393 } else {
3394 i = _read(file->_file, ptr, rcnt - BUFSIZ/2);
3395 }
3396 pread += i;
3397 rcnt -= i;
3398 ptr = (char *)ptr+i;
3399 /* expose feof condition in the flags
3400 * MFC tests file->_flag for feof, and doesn't call feof())
3401 */
3402 if (get_ioinfo_nolock(file->_file)->wxflag & WX_ATEOF)
3403 file->_flag |= _IOEOF;
3404 else if (i == -1)
3405 {
3406 file->_flag |= _IOERR;
3407 pread = 0;
3408 rcnt = 0;
3409 }
3410 if (i < 1) break;
3411 }
3412 read+=pread;
3414 return read / size;
3415}
#define read
Definition: acwin.h:96
GLsizeiptr size
Definition: glext.h:5919
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define _IOMYBUF
Definition: stdio.h:131
#define _IOEOF
Definition: stdio.h:132
#define _IOREAD
Definition: stdio.h:124
#define _IORW
Definition: stdio.h:135
#define _USERBUF
Definition: stdio.h:136
#define _IONBF
Definition: stdio.h:129
#define _IOERR
Definition: stdio.h:133
#define INT_MAX
Definition: intsafe.h:150
if(dx< 0)
Definition: linetemp.h:194
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static PVOID ptr
Definition: dispmode.c:27
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
#define BUFSIZ
Definition: nsplookup.c:25
#define WX_ATEOF
Definition: file.c:92
int CDECL _read(int fd, void *buf, unsigned int count)
Definition: file.c:2466
BOOL msvcrt_alloc_buffer(FILE *file)
Definition: file.c:572
void CDECL _lock_file(FILE *file)
Definition: file.c:1193
static ioinfo * get_ioinfo_nolock(int fd)
Definition: file.c:158
void CDECL _unlock_file(FILE *file)
Definition: file.c:1205
Definition: fci.c:127
unsigned char wxflag
Definition: file.c:61

Referenced by __MapViewOfFile(), __ReadFile(), _Filebuf_base::_M_read(), checkSsiByFilelist(), CmpFileRead(), compare_export_(), copy_file(), disk_read(), fread_file_func(), generate_xa_rr_attributes(), get_file_data(), get_ImageBase(), get_lineA(), get_lineW(), get_subtests(), GetBuff(), import_registry_file(), InfHostOpenFile(), CDFParser::Load(), load_file(), LoadFile(), tinyxml2::XMLDocument::LoadFile(), lwip_fuzztest(), main(), MainWndProc(), myRead(), parseAndPrintFile(), processRequest(), File::read(), read_file(), read_input_file(), read_mbr_template(), CCFDATAStorage::ReadBlock(), CCabinet::ReadBlock(), reg_import(), send_file(), CCabinet::SetCabinetReservedFile(), test__wfopen_s(), test_asciimode(), test_asciimode2(), test_fdopen(), test_fflush(), test_filemodeT(), test_fileops(), test_fopen_s(), test_fputwc(), test_freopen(), test_invalid_stdin_child(), test_pipes(), test_readmode(), test_write_flush_size(), write_if_change(), write_one_file(), write_str_file(), CCabinet::WriteFileToScratchStorage(), xdrstdio_getbytes(), and xdrstdio_getlong().

◆ fwrite()

size_t fwrite ( const void ptr,
size_t  size,
size_t  nmemb,
FILE file 
)

Definition at line 3077 of file file.c.

3078{
3079 size_t wrcnt=size * nmemb;
3080 int written = 0;
3081 if (size == 0)
3082 return 0;
3083
3085
3086 while(wrcnt) {
3087#ifndef __REACTOS__
3088 if(file->_cnt < 0) {
3089 WARN("negative file->_cnt value in %p\n", file);
3090 file->_flag |= MSVCRT__IOERR;
3091 break;
3092 } else
3093#endif
3094 if(file->_cnt) {
3095 int pcnt=(file->_cnt>wrcnt)? wrcnt: file->_cnt;
3096 memcpy(file->_ptr, ptr, pcnt);
3097 file->_cnt -= pcnt;
3098 file->_ptr += pcnt;
3099 written += pcnt;
3100 wrcnt -= pcnt;
3101 ptr = (const char*)ptr + pcnt;
3102 } else if((file->_flag & _IONBF)
3103 || ((file->_flag & (_IOMYBUF | _USERBUF)) && wrcnt >= file->_bufsiz)
3104 || (!(file->_flag & (_IOMYBUF | _USERBUF)) && wrcnt >= MSVCRT_INTERNAL_BUFSIZ)) {
3105 size_t pcnt;
3106 int bufsiz;
3107
3108 if(file->_flag & _IONBF)
3109 bufsiz = 1;
3110 else if(!(file->_flag & (_IOMYBUF | _USERBUF)))
3111 bufsiz = MSVCRT_INTERNAL_BUFSIZ;
3112 else
3113 bufsiz = file->_bufsiz;
3114
3115 pcnt = (wrcnt / bufsiz) * bufsiz;
3116
3118 break;
3119
3120 if(_write(file->_file, ptr, pcnt) <= 0) {
3121 file->_flag |= _IOERR;
3122 break;
3123 }
3124 written += pcnt;
3125 wrcnt -= pcnt;
3126 ptr = (const char*)ptr + pcnt;
3127 } else {
3128 if(_flsbuf(*(const char*)ptr, file) == EOF)
3129 break;
3130 written++;
3131 wrcnt--;
3132 ptr = (const char*)ptr + 1;
3133 }
3134 }
3135
3137 return written / size;
3138}
#define _flsbuf
Definition: _flswbuf.c:10
#define WARN(fmt,...)
Definition: precomp.h:61
#define EOF
Definition: stdio.h:24
#define MSVCRT__IOERR
Definition: msvcrt.h:690
static int msvcrt_flush_buffer(FILE *file)
Definition: file.c:535
int CDECL _write(int fd, const void *buf, unsigned int count)
Definition: file.c:2585
#define MSVCRT_INTERNAL_BUFSIZ
Definition: file.c:115

Referenced by _Filebuf_base::_M_write(), _putws(), _RunRemoteTest(), check_bitmap_data(), CmpFileWrite(), CCabinet::CommitDataBlocks(), ConWrite(), copy_file(), create_nls_file(), CreateOutputFile(), disk_ioctl(), disk_write(), DoTestEntry(), extract_test(), CCabinet::ExtractFile(), filewrite(), fputs(), fputwc(), fputws(), fwrite_file_func(), InfHostWriteFile(), main(), TANSIParser::ParseBuffer(), pipeClient(), pipeServer(), printer_write(), process_file_data(), processRequest(), puts(), REGPROC_open_export_file(), REGPROC_write_line(), ResourceToFile(), ResourceToFileW(), SdbpFlush(), test__wfopen_s(), test_asciimode2(), test_fflush(), test_fgetwc_locale(), test_fgetwc_unicode(), test_filbuf(), test_filemodeT(), test_fopen_s(), test_freopen(), test_invalid_stdin_child(), test_readboundary(), test_write_flush_size(), txt_fputs(), txt_open_export_file(), File::write(), write_casemap_file(), write_if_change(), write_lb_ranges(), write_line(), write_regscript(), write_unicode2cp_table(), CCFDATAStorage::WriteBlock(), CCabinet::WriteCabinetHeader(), CCabinet::WriteFileEntries(), CCabinet::WriteFolderEntries(), CDFParser::WriteInfLine(), WriteLine(), xawrite(), xdrstdio_putbytes(), xdrstdio_putlong(), xfwrite(), and xmlBufDump().

◆ strcasecmp()

int strcasecmp ( const char ,
const char  
)

◆ strncasecmp()

int strncasecmp ( const char ,
const char ,
size_t   
)