/* define locking/unlocking version */ size_t __cdecl fwrite ( const void *buffer, size_t size, size_t count, FILE *stream ) { size_t retval; _lock_str(stream); /* lock stream */ retval = _fwrite_lk(buffer, size, count, stream); /* do the read */ _unlock_str(stream); /* unlock stream */ return retval; }
int __cdecl _putts ( const _TCHAR *string ) { int buffing; #ifndef _UNICODE unsigned int length; unsigned int ndone; #endif /* _UNICODE */ int retval = _TEOF; /* error */ _ASSERTE(string != NULL); _lock_str2(1, stdout); buffing = _stbuf(stdout); #ifdef _UNICODE while (*string) { if (_putwchar_lk(*string++) == WEOF) goto done; } if (_putwchar_lk(L'\n') != WEOF) retval = 0; /* success */ #else /* _UNICODE */ length = strlen(string); ndone = _fwrite_lk(string,1,length,stdout); if (ndone == length) { _putc_lk('\n',stdout); retval = 0; /* success */ } #endif /* _UNICODE */ #ifdef _UNICODE done: #endif /* _UNICODE */ _ftbuf(buffing, stdout); _unlock_str2(1, stdout); return retval; }
int __cdecl fputs ( const char *string, FILE *stream ) { REG2 int buffing; REG1 unsigned int length; REG3 unsigned int ndone; _ASSERTE(string != NULL); _ASSERTE(stream != NULL); length = strlen(string); _lock_str(stream); buffing = _stbuf(stream); ndone = _fwrite_lk(string,1,length,stream); _ftbuf(buffing, stream); _unlock_str(stream); return(ndone == length ? 0 : EOF); }