strcpy_s与strcpy

strcpy_s和strcpy()函数的功能几乎是一样的。

strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。在程序运行时,这将导致不可预料的行为。用strcpy_s就可以避免这些不可预料的行为。
这个函数用两个参数、三个参数都可以,只要可以保证缓冲区大小。

今天了解了下strcpy_s,原来strcpy_s是系统的安全函数,微软在2005后建议用一系统所谓安全的函数,这中间就有strcpy_s取代了strcpy,原来strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。

strcpy_s是以字节为单位的参数,它用来确认缓冲区大小。这允许strcpy_s函数可以进行运行时检查,以确定写入的字符没有超过目标缓冲区的边界。所以它比strcpy好用,我还知道其他系统安全函数是在本来函数的后面加上“_s”,还有个遗憾就是用visual c++6.0没法编译strcpy_s函数.

原文地址:https://www.cnblogs.com/zzugyl/p/2806993.html