cert-err33-c¶
警告未使用函数返回值。许多标准库函数返回一个值,指示调用是否成功。如果发生错误,忽略返回值会导致意外行为。以下函数将被检查
aligned_alloc()
asctime_s()
at_quick_exit()
atexit()
bsearch()
bsearch_s()
btowc()
c16rtomb()
c32rtomb()
calloc()
clock()
cnd_broadcast()
cnd_init()
cnd_signal()
cnd_timedwait()
cnd_wait()
ctime_s()
fclose()
fflush()
fgetc()
fgetpos()
fgets()
fgetwc()
fopen()
fopen_s()
fprintf()
fprintf_s()
fputc()
fputs()
fputwc()
fputws()
fread()
freopen()
freopen_s()
fscanf()
fscanf_s()
fseek()
fsetpos()
ftell()
fwprintf()
fwprintf_s()
fwrite()
fwscanf()
fwscanf_s()
getc()
getchar()
getenv()
getenv_s()
gets_s()
getwc()
getwchar()
gmtime()
gmtime_s()
localtime()
localtime_s()
malloc()
mbrtoc16()
mbrtoc32()
mbsrtowcs()
mbsrtowcs_s()
mbstowcs()
mbstowcs_s()
memchr()
mktime()
mtx_init()
mtx_lock()
mtx_timedlock()
mtx_trylock()
mtx_unlock()
printf_s()
putc()
putwc()
raise()
realloc()
remove()
rename()
setlocale()
setvbuf()
scanf()
scanf_s()
signal()
snprintf()
snprintf_s()
sprintf()
sprintf_s()
sscanf()
sscanf_s()
strchr()
strerror_s()
strftime()
strpbrk()
strrchr()
strstr()
strtod()
strtof()
strtoimax()
strtok()
strtok_s()
strtol()
strtold()
strtoll()
strtoumax()
strtoul()
strtoull()
strxfrm()
swprintf()
swprintf_s()
swscanf()
swscanf_s()
thrd_create()
thrd_detach()
thrd_join()
thrd_sleep()
time()
timespec_get()
tmpfile()
tmpfile_s()
tmpnam()
tmpnam_s()
tss_create()
tss_get()
tss_set()
ungetc()
ungetwc()
vfprintf()
vfprintf_s()
vfscanf()
vfscanf_s()
vfwprintf()
vfwprintf_s()
vfwscanf()
vfwscanf_s()
vprintf_s()
vscanf()
vscanf_s()
vsnprintf()
vsnprintf_s()
vsprintf()
vsprintf_s()
vsscanf()
vsscanf_s()
vswprintf()
vswprintf_s()
vswscanf()
vswscanf_s()
vwprintf_s()
vwscanf()
vwscanf_s()
wcrtomb()
wcschr()
wcsftime()
wcspbrk()
wcsrchr()
wcsrtombs()
wcsrtombs_s()
wcsstr()
wcstod()
wcstof()
wcstoimax()
wcstok()
wcstok_s()
wcstol()
wcstold()
wcstoll()
wcstombs()
wcstombs_s()
wcstoumax()
wcstoul()
wcstoull()
wcsxfrm()
wctob()
wctrans()
wctype()
wmemchr()
wprintf_s()
wscanf()
wscanf_s()
此检查是检查 bugprone-unused-return-value 的别名,具有一组固定的函数。
默认情况下,通过强制转换为 void
来抑制问题是启用的,可以通过将 AllowCastToVoid 选项设置为 false
来禁用。
此检查对应于 CERT C 编码标准规则的一部分 ERR33-C。检测和处理标准库错误。检查的函数列表取自该规则,但有以下例外
检查无法区分函数是否以
NULL
参数调用。因此,以下函数不会被检查:mblen
,mbrlen
,mbrtowc
,mbtowc
,wctomb
,wctomb_s