天天看點

常用C庫函數與WIN32函數比較一覽表

Win32 Equivalents for C Run-Time Functions ID: Q99456

The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), included with:
    • 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 "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 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 : kbNTOS310 kbNTOS350 kbNTOS351 kbWinOS95

Version :

Platform :

Issue type :