You are currently offline, waiting for your internet to reconnect

Win32 Equivalents for C Run-Time Functions

This article was previously published under Q99456
Many of the C Run-time functions have direct equivalents in the Win32application programming interface (API). This article lists the C Run-timefunctions by category with their Win32 equivalents or the word "none" if noequivalent exists.
NOTE: the functions that are followed by an asterisk (*) are part of the16-bit C Run-time only. Functions that are unique to the 32-bit C Run-timeare listed separately in the last section. All other functions are commonto 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 Manipulation

   strcat, 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				


   asctime                   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, muchof 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 Helpfile.

NOTE 3: The virtual memory functions listed in this document are specificto the MS-DOS environment and were written to access memory beyond the 640Kof RAM available in MS-DOS. Because this limitation does not exist inWin32, 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 notsupported by Win32s version 1.1. It is supported in Win32s 1.2.GetFileSize(), GetFileAttributes(), GetFileTime(), and GetFileTitle() aresupported by Win32s 1.1 and 1.2.
3.10 3.50 4.00

Article ID: 99456 - Last Review: 11/21/2006 15:47:43 - Revision: 3.1

Microsoft Win32 Application Programming Interface

  • KB99456