posts - 274,  comments - 1258,  trackbacks - 0

常用的安全CRT函数
安全CRT(C Runtime Library = C运行时间库)函数,是微软公司对C/C++语言的扩展。它在原来函数名后添加了“_s”后缀;一般返回出错代码;并将原来的函数返回值,作为一个参数,添加到函数输入参数列表的最后;对带缓冲区参数的函数,还添加了表示缓冲区大小的输入参数,以防止内存溢出。
在VC05中,如果不使用这些安全性函数,编译器会报告警告性错误。
下面是若干常用的安全CRT函数:
char *gets_s( char *buffer, size_t sizeInCharacters); // <stdio.h>
wchar_t *_getws_s( wchar_t *buffer, size_t sizeInCharacters); // <stdio.h> or <wchar.h>
errno_t _itoa_s( int value, char *buffer, size_t sizeInCharacters, int radix ); // <stdlib.h>
errno_t _itow_s( int value, wchar_t *buffer, size_t sizeInCharacters, int radix ); // <stdlib.h>
errno_t _ultoa_s( unsigned long value, char *str, size_t sizeOfstr, int radix ); // <stdlib.h>
errno_t _ultow_s( unsigned long value, wchar_t *str, size_t sizeOfstr, int radix ); // <stdlib.h>
int printf_s( const char *format [, argument]... ); // <stdio.h>
int wprintf_s( const wchar_t *format [, argument]... ); // <stdio.h> or <wchar.h>
int scanf_s( const char *format [, argument]... ); // <stdio.h>
int wscanf_s( const wchar_t *format [, argument]... ); // <stdio.h> or <wchar.h>
int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argument] ... ); // <stdio.h>
int swprintf_s( wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format [, argument]...); // <stdio.h> or <wchar.h>
int sscanf_s( const char *buffer, const char *format [, argument ] ...); // <stdio.h>
int swscanf_s( const wchar_t *buffer, const wchar_t *format [, argument ] ...); // <stdio.h> or <wchar.h>
int fprintf_s( FILE *stream, const char *format [, argument ]...); // <stdio.h>
int fwscanf_s( FILE *stream, const wchar_t *format [, argument ]... ); // <stdio.h> or <wchar.h>
int fscanf_s( FILE *stream, const char *format [, argument ]... ); // <stdio.h>
int fwscanf_s( FILE *stream, const wchar_t *format [, argument ]... ); // <stdio.h> or <wchar.h>
errno_t strcpy_s( char *strDestination, size_t sizeInBytes, const char *strSource ); // <string.h>
errno_t wcscpy_s( wchar_t *strDestination, size_t sizeInWords, const wchar_t *strSource ); // <string.h> or <wchar.h>
errno_t fopen_s( FILE** pFile, const char *filename, const char *mode ); // <stdio.h>
errno_t _wfopen_s( FILE** pFile, const wchar_t *filename, const wchar_t *mode ); // <stdio.h> or <wchar.h>
errno_t rand_s( unsigned int* randomValue); // <stdlib.h>

下面是若干安全函数原型用到的数据类型的定义:
#include <crtdefs.h>
typedef  int  errno_t;
typedef  unsigned short  wchar_t;
#ifdef  _WIN64
typedef  unsigned __int64  size_t;
#else
typedef  _W64 unsigned int  size_t;
#endif

 

---
本文章使用开源内容管理kicoy发布

转载自李才伟老师的课件

posted on 2006-06-12 11:42 踏雪赤兔 阅读(3364) 评论(2)  编辑 收藏 引用 所属分类: 速查手册

FeedBack:
# re: 常用的安全CRT函数
2006-12-21 15:07 | laner
re lcw大哥....  回复  更多评论
  
# re: 常用的安全CRT函数
2006-12-21 15:43 | 踏雪赤兔
laner是哪位啊?  回复  更多评论
  
只有注册用户登录后才能发表评论。

百度空间| 见闻日记| 编程感悟
我的twitter


LOGO

自我介绍:百度厂基础平台车间的一名挨踢民工。擅长C++、算法、语言设计、分布式计算,也用过Java,Python, PHP,JS/AS等语言开发。请关注我的twitter (免翻墙版) 发QQ消息


添加到收藏夹 Locations of visitors to this page

常用链接

随笔分类(300)

随笔档案(274)

文章分类(38)

相册

收藏夹(54)

与博主互动

博客手拉手

搜索

  •  

积分与排名

  • 积分 - 399490
  • 排名 - 10

最新评论

阅读排行榜

评论排行榜