C语言库函数的原型,有用的拿去

源代码在线查看: puts.c

软件大小: 3272 K
上传用户: kens
关键词: C语言 库函数 原型
下载地址: 免注册下载 普通下载 VIP

相关代码

				/***
				*puts.c - put a string to stdout
				*
				*       Copyright (c) Microsoft Corporation. All rights reserved.
				*
				*Purpose:
				*       defines puts() and _putws() - put a string to stdout
				*
				*******************************************************************************/
				
				#include 
				#include 
				#include 
				#include 
				#include 
				#include 
				#include 
				#include 
				
				/***
				*int puts(string) - put a string to stdout with newline
				*
				*Purpose:
				*       Write a string to stdout; don't include '\0' but append '\n'.  Uses
				*       temporary buffering for efficiency on stdout if unbuffered.
				*
				*Entry:
				*       char *string - string to output
				*
				*Exit:
				*       Good return = 0
				*       Error return = EOF
				*
				*Exceptions:
				*
				*******************************************************************************/
				
				int __cdecl _putts (
				        const _TCHAR *string
				        )
				{
				    int buffing;
				#ifndef _UNICODE
				    size_t length;
				    size_t ndone;
				#endif  /* _UNICODE */
				    int retval = _TEOF; /* error */
				
				    _VALIDATE_RETURN( (string != NULL), EINVAL, _TEOF );
				#ifndef _UNICODE
				    _VALIDATE_STREAM_ANSI_RETURN(stdout, EINVAL, EOF);
				#endif  /* _UNICODE */
				
				    _lock_str2(1, stdout);
				    __try {
				        buffing = _stbuf(stdout);
				
				#ifdef _UNICODE
				        while (*string) {
				            if (_putwchar_nolock(*string++) == WEOF)
				                goto done;
				        }
				        if (_putwchar_nolock(L'\n') != WEOF)
				            retval = 0;     /* success */
				#else  /* _UNICODE */
				        length = strlen(string);
				        ndone = _fwrite_nolock(string,1,length,stdout);
				
				        if (ndone == length) {
				            _putc_nolock('\n',stdout);
				            retval = 0;     /* success */
				        }
				#endif  /* _UNICODE */
				
				#ifdef _UNICODE
				done:
				#endif  /* _UNICODE */
				        _ftbuf(buffing, stdout);
				    }
				    __finally {
				        _unlock_str2(1, stdout);
				    }
				
				    return retval;
				}
							

相关资源