常用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 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值