常用的安全CRT函数 安全CRT(C Runtime Library = C运行时间库)函数,是微软公司对C/C++语言的扩展。它在原来函数名后添加了“_s”后缀;一般返回出错代码;并将原来的函数返回值,作为一个参数,添加到函数输入参数列表的最后;对带缓冲区参数的函数,还添加了表示缓冲区大小的输入参数,以防止内存溢出。
在VC2005中,如果不使用这些安全性函数,编译器会报告警告性错误。 下面是若干常用的安全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>

最新文章

  1. Oracle 超长字符串分割劈分
  2. Sql Server系列:索引设计原则及优化
  3. canvas 画圈 demo
  4. IIS服务器下做301永久重定向设置方法
  5. 关于obj和基本类通过函数参数传进去执行是否改变原来的值
  6. IOS中表视图(UITableView)使用详解
  7. Android支付接入(四):联通VAC计费
  8. php nl2br() 函数
  9. java项目创建和部署
  10. 推荐一些C#相关的网站、资源和书籍(转载)
  11. 使用NFS安装oracle软件
  12. wordpress常见的问题
  13. unix域套接字UDP网络编程
  14. EF 下的code fist 模式编程
  15. aspnet5备忘
  16. loj6271「长乐集训 2017 Day10」生成树求和 加强版
  17. C#中Dictionary的介绍
  18. 从头开始学Maven【依赖范围】
  19. mp4文件解析(纯c解析代码)
  20. SpringBoot2.X + SpringCache + redis解决乱码问题

热门文章

  1. 任务36:应用Jwtbearer Authentication
  2. html中target的用法
  3. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&amp;&amp;13
  4. android 四大组件详解
  5. P1211 街道赛跑
  6. 第十七篇 .NET高级技术之XML
  7. 运行scrapyd报错
  8. 关于AFNetWorking 2.5.4之后版本编译报错问题解决方案
  9. android 多线程 AsyncTask 下载图片
  10. 洛谷P2502[HAOI2006]旅行