Deprecated CRT Functions
In this article
Deprecated CRT functions and their recommended replacements.
Deprecated POSIX functions
The following POSIX names for functions are deprecated. In most cases, prepending an underscore character gives the standard equivalent name. Note that some functions have more secure versions ("_s" suffix).
You can also eliminate POSIX deprecation warnings by defining _CRT_NONSTDC_NO_DEPRECATE.
access
_access , _access_s
cabs
_cabs
cgets
_cgets , _cgets_s
chdir
_chdir
chmod
_chmod
chsize
_chsize , _chsize_s
close
_close
cprintf
_cprintf , _cprintf_s
cputs
_cputs
creat
_creat
cscanf
_cscanf , _cscanf_s
cwait
_cwait
dup
_dup
dup2
_dup2
ecvt
_ecvt , _ecvt_s
eof
_eof
execl
_execl
execle
_execle
execlp
_execlp
execlpe
_execlpe
execv
_execv
execve
_execve
execvp
_execvp
execvpe
_execvpe
fcloseall
_fcloseall
fcvt
_fcvt , _fcvt_s
fdopen
_fdopen
fgetchar
_fgetchar
filelength
_filelength
fileno
_fileno
flushall
_flushall
fputchar
_fputchar, _fputwchar
gcvt
_gcvt , _gcvt_s
getch
_getch
getche
_getche
getcwd
_getcwd, _wgetcwd
getpid
_getpid
getw
_getw
hypot
_hypot
inp
_inp
inpw
_inpw
isascii
__isascii
isatty
_isatty
iscsym
__iscsym
iscsymf
__iscsymf
itoa
_itoa , _itoa_s
j0
_j0
j1
_j1
jn
_jn
kbhit
_kbhit
lfind
_lfind , _lfind_s
locking
_locking
lsearch
_lsearch , _lsearch_s
lseek
_lseek
ltoa
_ltoa , _ltoa_s
memccpy
_memccpy
memicmp
_memicmp
mkdir
_mkdir
mktemp
_mktemp , _mktemp_s
open
_open
outp
_outp
outpw
_outpw
putch
_putch
putenv
_putenv , _putenv_s
putw
_putw
read
_read
rmdir
_rmdir
rmtmp
_rmtmp
setmode
_setmode
sopen
_sopen , _sopen_s
spawnl
_spawnl
spawnle
_spawnle
spawnlp
_spawnlp
spawnlpe
_spawnlpe
spawnv
_spawnv
spawnve
_spawnve
spawnvp
_spawnvp
spawnvpe
_spawnvpe
strcmpi
_stricmp
strdup
_strdup
stricmp
_stricmp
strlwr
_strlwr , _strlwr_s
strnicmp
_strnicmp
strnset
_strnset , _strnset_s
strrev
_strrev
strset
_strset , _strset_s
strupr
_strupr , _strupr_s
swab
_swab
tell
_tell
tempnam
_tempnam
toascii
__toascii
tzset
_tzset
ultoa
_ultoa , _ultoa_s
umask
_umask , _umask_s
ungetch
_ungetch
unlink
_unlink
wcsdup
_wcsdup
wcsicmp
_wcsicmp
wcsicoll
_wcsicoll
wcslwr
_wcslwr , _wcslwr_s
wcsnicmp
_wcsnicmp
wcsnset
_wcsnset , _wcsnset_s
wcsrev
_wcsrev
wcsset
_wcsset , _wcsset_s
wcsupr
_wcsupr , _wcsupr_s
write
_write
y0
_y0
y1
_y1
yn
_yn
Security-enhanced functions
The following functions should be avoided because a more secure version of the function should be used instead. For more information, see Security Enhancements in the CRT .
_alloca
_malloca
asctime
asctime_s
_cgets, _cgetws
_cgets_s, _cgetws_s
_chsize
_chsize_s
_controlfp
_controlfp_s
_creat
_sopen_s
_cscanf
_cscanf_s
_cscanf_l
_cscanf_s_l
ctime
ctime_s
_ctime32
_ctime32_s
_ctime64
_ctime64_s
_cwscanf
_cwscanf_s
_cwscanf_l
_cwscanf_s_l
_ecvt
_ecvt_s
_fcvt
_fcvt_s
fopen
fopen_s
freopen
freopen_s
fscanf
fscanf_s
_fscanf_l
_fscanf_s_l
fwscanf
fwscanf_s
_fwscanf_l
_fwscanf_s_l
_gcvt
_gcvt_s
getenv
getenv_s
gets, _getws
gets_s, _getws_s
gmtime
_gmtime_s
_gmtime32
_gmtime32_s
_gmtime64
_gmtime64_s
_i64toa
_i64toa_s
_i64tow
_i64tow_s
_itoa
_itoa_s
_itow
_itow_s
localtime
_localtime_s
_localtime32
_localtime32_s
_localtime64
_localtime64_s
_ltoa, _ltow
_ltoa_s, _ltow_s
_mbccpy
_mbccpy_s
_mbccpy_l
_mbccpy_s_l
_mbscat
_mbscat_s
_mbscpy
_mbscpy_s
_mbslwr, _mbslwr_l
_mbslwr_s, _mbslwr_s_l
_mbsnbcat, _mbsnbcat_l
_mbsnbcat_s, _mbsnbcat_s_l
_mbsnbcpy, _mbsnbcpy_l
_mbsnbcpy_s, _mbsnbcpy_s_l
_mbsnbset
_mbsnbset_s
_mbsnbset_l
_mbsnbset_s_l
_mbsncat
_mbsncat_s
_mbsncat_l
_mbsncat_s_l
_mbsncpy
_mbsncpy_s
_mbsncpy_l
_mbsncpy_s_l
_mbsnset
_mbsnset_s
_mbsnset_l
_mbsnset_s_l
mbsrtowcs
mbsrtowcs_s
_mbsset
_mbsset_s
_mbsset_l
_mbsset_s_l
_mbstok
_mbstok_s
_mbstok_l
_mbstok_s_l
mbstowcs, _mbstowcs_l
mbstowcs_s, _mbstowcs_s_l
_mbsupr, _mbsupr_l
_mbsupr_s, _mbsupr_s_l
memcpy
memcpy_s
memmove
memmove_s
_mktemp
_mktemp_s
_open
_sopen_s
scanf
scanf_s
_scanf_l
_scanf_s_l
_searchenv
_searchenv_s
setbuf
setvbuf
_snprintf
_snprintf_s
_snprintf_l
_snprintf_s_l
_snscanf
_snscanf_s
_snscanf_l
_snscanf_s_l
_snwprintf
_snwprintf_s
_snwprintf_l
_snwprintf_s_l
_snwscanf
_snwscanf_s
_snwscanf_l
_snwscanf_s_l
_sopen
_sopen_s
_splitpath
_splitpath_s
sprintf
sprintf_s
_sprintf_l
_sprintf_s_l
sscanf
sscanf_s
_sscanf_l
_sscanf_s_l
strcat
strcat_s
strcpy
strcpy_s
_strdate
_strdate_s
strerror, _strerror
strerror_s, _strerror_s
_strlwr, _strlwr_l
_strlwr_s, _strlwr_s_l
strncat, _strncat_l
strncat_s, _strncat_s_l
strncpy, _strncpy_l
strncpy_s, _strncpy_s_l
_strnset
_strnset_s
_strnset_l
_strnset_s_l
_strset
_strset_s
_strset_l
_strset_s_l
_strtime
_strtime_s
strtok
strtok_s
_strtok_l
_strtok_s_l
_strupr, _strupr_l
_strupr_s, _strupr_s_l
swprintf
swprintf_s
_swprintf_l
_swprintf_s_l
swscanf
swscanf_s
_swscanf_l
_swscanf_s_l
tmpfile
tmpfile_s
_ui64toa, _ui64tow
_ui64toa_s, _ui64tow_s
_ultoa, _ultow
_ultoa_s, _ultow_s
_umask
_umask_s
vsnprintf, _vsnprintf, _vsnprintf_l, _vsnwprintf, _vsnwprintf_l
vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l
vsprintf, _vsprintf_l, vswprintf, _vswprintf_l, __vswprintf_l
vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l
_wasctime
_wasctime_s
_wcreat
_wsopen_s
wcrtomb
wcrtomb_s
wcscat
wcscat_s
wcscpy
wcscpy_s
_wcserror, __wcserror
_wcserror_s, __wcserror_s
_wcslwr, _wcslwr_l
_wcslwr_s, _wcslwr_s_l
wcsncat, wcsncat_l
wcsncat_s, _wcsncat_s_l
_wcsncpy, _wcsncpy_l
wcsncpy_s, _wcsncpy_s_l
_wcsnset, _wcsnset_l
_wcsnset_s, _wcsnset_s_l
wcsrtombs
wcsrtombs_s
_wcsset, _wcsset_l
_wcsset_s_wcsset_s_l
wcstok, _wcstok_l
wcstok_s, _wcstok_s_l
wcstombs, _wcstombs_l
wcstombs_s, _wcstombs_s_l
_wcsupr_l, _wcsupr
_wcsupr_s, _wcsupr_s_l
_wctime, _wctime32, _wctime64
_wctime_s, _wctime32_s, _wctime64_s
wctomb, _wctomb_l
wctomb_s, _wctomb_s_l
_wfopen
_wfopen_s
_wfreopen
_wfreopen_s
_wgetenv
_wgetenv_s
wmemcpy
wmemcpy_s
wmemmove
wmemmove_s
_wmktemp
_wmktemp_s
_wopen
_wsopen_s
wscanf, _wscanf_l
wscanf_s, _wscanf_s_l
_wsearchenv
_wsearchenv_s
_wsopen
_wsopen_s
_wsplitpath
_wsplitpath_s
_wstrdate
_wstrdate_s
_wstrtime
_wstrtime_s
Functions with Secure Template Overloads
Some of the functions in the preceding section have secure template overloads which can eliminate deprecation warnings by replacing calls to deprecated functions with calls to the new secure versions of those functions. For more information, see Secure Template Overloads .
_cgets, _cgetws
gets, _getws
_itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow
_ltoa, _ltow
_mbsnbcat, _mbsnbcat_l
_mbsnbcpy, _mbsnbcpy_l
mbsrtowcs
mbstowcs, _mbstowcs_l
_mktemp, _wmktemp
_searchenv, _wsearchenv
_snprintf, _snprintf_l, _snwprintf, _snwprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
strcat, wcscat, _mbscat
strcpy, wcscpy, _mbscpy
_strdate, _wstrdate
_strlwr, _wcslwr, _mbslwr, _strlwr_l, _wcslwr_l, _mbslwr_l
strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strtime, _wstrtime
_strupr, _strupr_l, _mbsupr, _mbsupr_l, _wcsupr_l, _wcsupr
_ultoa, _ultow
vsnprintf, _vsnprintf, _vsnprintf_l, _vsnwprintf, _vsnwprintf_l
vsprintf, _vsprintf_l, vswprintf, _vswprintf_l, __vswprintf_l
wcrtomb
wcsrtombs
wcstombs, _wcstombs_l
See Also
Reference
Run-Time Routines by Category
Change History
October 2008
Corrected names of wscanf and wscanf_s .
Customer feedback.