避免使用已过时的接口
1.12 ID_obsoleteFunction
避免使用在相关标准中已过时的接口,应改用更完善的替代方法以规避风险,提高可移植性。
对于过时的 C++ 标准库接口,本规则特化为 ID_obsoleteStdFunction。
示例:
asctime // Use ‘strftime’ instead
bcmp // Use ‘memcmp’ instead
bcopy // Use ‘memmove’ or ‘memcpy’ instead
bsd_signal // Use ‘sigaction’ instead
bzero // Use ‘memset’ instead
ctime // Use ‘strftime’ instead
gethostbyaddr // Use ‘getnameinfo’ instead
gethostbyname // Use ‘getaddrinfo’ instead
getwd // Use ‘getcwd’ instead
mktemp // Use ‘mkstemp’ instead
usleep // Use ‘nanosleep’ instead
utime // Use ‘utimensat’ instead
vfork // Use ‘fork’ instead
wcswcs // Use ‘wcsstr’ instead
pthread_attr_getstackaddr // Use ‘pthread_attr_getstack’ instead
pthread_attr_setstackaddr // Use ‘pthread_attr_setstack’ instead
CreateToolbarEx // Use ‘CreateWindowEx’ instead
InitCommonControls // Use ‘InitCommonControlsEx’ instead
NtQuerySystemTime // Use ‘GetSystemTimeAsFileTime’ instead
RegCreateKey // Use ‘RegCreateKeyEx’ instead
WinExec // Use ‘CreateProcess’ instead
例中 C89 引入的 ctime、asctime 等函数在 POSIX.1-2008 标准中已过时,应改用 strftime 函数;RegCreateKey 等 16 位 Windows API 在 32 和 64 位平台中不应再被使用。