Win32 Equivalents for C Run-Time Functions
This article was previously published under Q99456 On This PageSUMMARY
Many of the C Run-time functions have direct equivalents in the Win32
application programming interface (API). This article lists the C Run-time
functions by category with their Win32 equivalents or the word "none" if no
equivalent exists.
MORE INFORMATION
NOTE: the functions that are followed by an asterisk (*) are part of the
16-bit C Run-time only. Functions that are unique to the 32-bit C Run-time
are listed separately in the last section. All other functions are common
to both C Run-times.
Buffer Manipulation
_memccpy none
memchr none
memcmp none
memcpy CopyMemory
_memicmp none
memmove MoveMemory
memset FillMemory, ZeroMemory
_swab none
Character Classification
isalnum IsCharAlphaNumeric
isalpha IsCharAlpha, GetStringTypeW (Unicode)
__isascii none
iscntrl none, GetStringTypeW (Unicode)
__iscsym none
__iscsymf none
isdigit none, GetStringTypeW (Unicode)
isgraph none
islower IsCharLower, GetStringTypeW (Unicode)
isprint none
ispunct none, GetStringTypeW (Unicode)
isspace none, GetStringTypeW (Unicode)
isupper IsCharUpper, GetStringTypeW (Unicode)
isxdigit none, GetStringTypeW (Unicode)
__toascii none
tolower CharLower
_tolower none
toupper CharUpper
_toupper none
Directory Control_chdir SetCurrentDirectory _chdrive SetCurrentDirectory _getcwd GetCurrentDirectory _getdrive GetCurrentDirectory _mkdir CreateDirectory _rmdir RemoveDirectory _searchenv SearchPath File Handling
_access none
_chmod SetFileAttributes
_chsize SetEndOfFile
_filelength GetFileSize
_fstat See Note 5
_fullpath GetFullPathName
_get_osfhandle none
_isatty GetFileType
_locking LockFileEx
_makepath none
_mktemp GetTempFileName
_open_osfhandle none
remove DeleteFile
rename MoveFile
_setmode none
_splitpath none
_stat none
_umask none
_unlink DeleteFile
Creating Text Output Routines_displaycursor* SetConsoleCursorInfo _gettextcolor* GetConsoleScreenBufferInfo _gettextcursor* GetConsoleCursorInfo _gettextposition* GetConsoleScreenBufferInfo _gettextwindow* GetConsoleWindowInfo _outtext* WriteConsole _scrolltextwindow* ScrollConsoleScreenBuffer _settextcolor* SetConsoleTextAttribute _settextcursor* SetConsoleCursorInfo _settextposition* SetConsoleCursorPosition _settextwindow* SetConsoleWindowInfo _wrapon* SetConsoleMode Stream Routines
clearerr none
fclose CloseHandle
_fcloseall none
_fdopen none
feof none
ferror none
fflush FlushFileBuffers
fgetc none
_fgetchar none
fgetpos none
fgets none
_fileno none
_flushall none
fopen CreateFile
fprintf none
fputc none
_fputchar none
fputs none
fread ReadFile
freopen (std handles) SetStdHandle
fscanf none
fseek SetFilePointer
fsetpos SetFilePointer
_fsopen CreateFile
ftell SetFilePointer (check return value)
fwrite WriteFile
getc none
getchar none
gets none
_getw none
printf none
putc none
putchar none
puts none
_putw none
rewind SetFilePointer
_rmtmp none
scanf none
setbuf none
setvbuf none
_snprintf none
sprintf wsprintf
sscanf none
_tempnam GetTempFileName
tmpfile none
tmpnam GetTempFileName
ungetc none
vfprintf none
vprintf none
_vsnprintf none
vsprintf wvsprintf
Low-Level I/O_close _lclose, CloseHandle _commit FlushFileBuffers _creat _lcreat, CreateFile _dup DuplicateHandle _dup2 none _eof none _lseek _llseek, SetFilePointer _open _lopen, CreateFile _read _lread, ReadFile _sopen CreateFile _tell SetFilePointer (check return value) _write _lread Console and Port I/O Routines_cgets none _cprintf none _cputs none _cscanf none _getch ReadConsoleInput _getche ReadConsoleInput _inp none _inpw none _kbhit PeekConsoleInput _outp none _outpw none _putch WriteConsoleInput _ungetch none Memory Allocation
_alloca none
_bfreeseg* none
_bheapseg* none
calloc GlobalAlloc
_expand none
free GlobalFree
_freect* GlobalMemoryStatus
_halloc* GlobalAlloc
_heapadd none
_heapchk none
_heapmin none
_heapset none
_heapwalk none
_hfree* GlobalFree
malloc GlobalAlloc
_memavl GlobalMemoryStatus
_memmax GlobalMemoryStatus
_msize* GlobalSize
realloc GlobalReAlloc
_set_new_handler none
_set_hnew_handler* none
_stackavail* none
Process and Environment Control Routines
abort none
assert none
atexit none
_cexit none
_c_exit none
_exec functions none
exit ExitProcess
_exit ExitProcess
getenv GetEnvironmentVariable
_getpid GetCurrentProcessId
longjmp none
_onexit none
perror FormatMessage
_putenv SetEnvironmentVariable
raise RaiseException
setjmp none
signal (ctrl-c only) SetConsoleCtrlHandler
_spawn functions CreateProcess
system CreateProcess
String Manipulationstrcat, wcscat lstrcat strchr, wcschr none strcmp, wcscmp lstrcmp strcpy, wcscpy lstrcpy strcspn, wcscspn none _strdup, _wcsdup none strerror FormatMessage _strerror FormatMessage _stricmp, _wcsicmp lstrcmpi strlen, wcslen lstrlen _strlwr, _wcslwr CharLower, CharLowerBuffer strncat, wcsncat none strncmp, wcsncmp none strncpy, wcsncpy none _strnicmp, _wcsnicmp none _strnset, _wcsnset FillMemory, ZeroMemory strpbrk, wcspbrk none strrchr, wcsrchr none _strrev, _wcsrev none _strset, _wcsset FillMemory, ZeroMemory strspn, wcsspn none strstr, wcsstr none strtok, wcstok none _strupr, _wcsupr CharUpper, CharUpperBuffer MS-DOS Interface_bdos* none _chain_intr* none _disable* none _dos_allocmem* GlobalAlloc _dos_close* CloseHandle _dos_commit* FlushFileBuffers _dos_creat* CreateFile _dos_creatnew* CreateFile _dos_findfirst* FindFirstFile _dos_findnext* FindNextFile _dos_freemem* GlobalFree _dos_getdate* GetSystemTime _dos_getdiskfree* GetDiskFreeSpace _dos_getdrive* GetCurrentDirectory _dos_getfileattr* GetFileAttributes _dos_getftime* GetFileTime _dos_gettime* GetSystemTime _dos_getvect* none _dos_keep* none _dos_open* OpenFile _dos_read* ReadFile _dos_setblock* GlobalReAlloc _dos_setdate* SetSystemTime _dos_setdrive* SetCurrentDirectory _dos_setfileattr* SetFileAttributes _dos_setftime* SetFileTime _dos_settime* SetSystemTime _dos_setvect* none _dos_write* WriteFile _dosexterr* GetLastError _enable* none _FP_OFF* none _FP_SEG* none _harderr* See Note 1 _hardresume* See Note 1 _hardretn* See Note 1 _int86* none _int86x* none _intdos* none _intdosx* none _segread* none Timeasctime See Note 2 clock See Note 2 ctime See Note 2 difftime See Note 2 _ftime See Note 2 _getsystime GetLocalTime gmtime See Note 2 localtime See Note 2 mktime See Note 2 _strdate See Note 2 _strtime See Note 2 time See Note 2 _tzset See Note 2 _utime SetFileTime Virtual Memory Allocation_vfree* See Note 3 _vheapinit* See Note 3 _vheapterm* See Note 3 _vload* See Note 3 _vlock* See Note 3 _vlockcnt* See Note 3 _vmalloc* See Note 3 _vmsize* See Note 3 _vrealloc* See Note 3 _vunlock* See Note 3 32-Bit C Run Time_beginthread CreateThread _cwait WaitForSingleObject w/ GetExitCodeProcess _endthread ExitThread _findclose FindClose _findfirst FindFirstFile _findnext FindNextFile _futime SetFileTime _get_osfhandle none _open_osfhandle none _pclose See Note 4 _pipe CreatePipe _popen See Note 4 NOTE 1: The _harderr functions do not exist in the Win32 API. However, much of their functionality is available through structured exception handling. NOTE 2: The time functions are based on a format that is not used in Win32. There are specific Win32 time functions that are documented in the Help file. NOTE 3: The virtual memory functions listed in this document are specific to the MS-DOS environment and were written to access memory beyond the 640K of RAM available in MS-DOS. Because this limitation does not exist in Win32, the standard memory allocation functions should be used. NOTE 4: While _pclose() and _popen() do not have direct Win32 equivalents, you can (with some work) simulate them with the following calls:
_popen CreatePipe
CreateProcess
_pclose WaitForSingleObject
CloseHandle
NOTE 5: GetFileInformationByHandle() is the Win32 equivalent for the
_fstat() C Run-time function. However, GetFileInformationByHandle() is not
supported by Win32s version 1.1. It is supported in Win32s 1.2.
GetFileSize(), GetFileAttributes(), GetFileTime(), and GetFileTitle() are
supported by Win32s 1.1 and 1.2.
APPLIES TO
| Article Translations
| |||||||||||||||||||||||||||||

Back to the top
