Microsoft KB Archive/99456

{|
 * width="100%"|

Win32 Equivalents for C Run-Time Functions

 * }

Q99456

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), included with:
 * the operating system: Microsoft Windows NT, versions 3.1, 3.5, 3.51
 * Microsoft Windows 95

-

SUMMARY
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 &quot;none&quot; 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 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

Time
  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, 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.

Additional query words: 3.10 3.50 4.00

Keywords : kbOSWinNT310 kbOSWinNT350 kbOSWinNT351 kbOSWin95

Issue type :

Technology : kbAudDeveloper kbWin32sSearch kbWin32API