您的位置:首页 > 其它

常用C库函数与WIN32函数比较一览表

2007-08-09 16:16 309 查看
[align=left]Win32 Equivalents for C Run-Time Functions[/align]
[align=left]ID: Q99456[/align]
[align=center][/align]
[align=left]The information in this article applies to:[/align]

Microsoft Win32 Application Programming Interface (API), included with:

Microsoft Windows NT, versions 3.1, 3.5, 3.51

Microsoft Windows 95

[align=center][/align]
[align=left] [/align]
[align=left]SUMMARY[/align]
[align=left]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. [/align]
[align=left] [/align]
[align=left]MORE INFORMATION[/align]
[align=left]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. [/align]
[align=left]Buffer Manipulation[/align]
[align=left] [/align]
[align=left] _memccpy none[/align]
[align=left] memchr none[/align]
[align=left] memcmp none[/align]
[align=left] memcpy CopyMemory[/align]
[align=left] _memicmp none[/align]
[align=left] memmove MoveMemory[/align]
[align=left] memset FillMemory, ZeroMemory[/align]
[align=left] _swab none [/align]
[align=left]Character Classification[/align]
[align=left] [/align]
[align=left] isalnum IsCharAlphaNumeric[/align]
[align=left] isalpha IsCharAlpha, GetStringTypeW (Unicode)[/align]
[align=left] __isascii none[/align]
[align=left] iscntrl none, GetStringTypeW (Unicode)[/align]
[align=left] __iscsym none[/align]
[align=left] __iscsymf none[/align]
[align=left] isdigit none, GetStringTypeW (Unicode)[/align]
[align=left] isgraph none[/align]
[align=left] islower IsCharLower, GetStringTypeW (Unicode)[/align]
[align=left] isprint none[/align]
[align=left] ispunct none, GetStringTypeW (Unicode)[/align]
[align=left] isspace none, GetStringTypeW (Unicode)[/align]
[align=left] isupper IsCharUpper, GetStringTypeW (Unicode)[/align]
[align=left] isxdigit none, GetStringTypeW (Unicode)[/align]
[align=left] __toascii none[/align]
[align=left] tolower CharLower[/align]
[align=left] _tolower none[/align]
[align=left] toupper CharUpper[/align]
[align=left] _toupper none [/align]
[align=left]Directory Control[/align]
[align=left] [/align]
[align=left] _chdir SetCurrentDirectory[/align]
[align=left] _chdrive SetCurrentDirectory[/align]
[align=left] _getcwd GetCurrentDirectory[/align]
[align=left] _getdrive GetCurrentDirectory[/align]
[align=left] _mkdir CreateDirectory[/align]
[align=left] _rmdir RemoveDirectory[/align]
[align=left] _searchenv SearchPath [/align]
[align=left]File Handling[/align]
[align=left] [/align]
[align=left] _access none[/align]
[align=left] _chmod SetFileAttributes[/align]
[align=left] _chsize SetEndOfFile[/align]
[align=left] _filelength GetFileSize[/align]
[align=left] _fstat See Note 5[/align]
[align=left] _fullpath GetFullPathName[/align]
[align=left] _get_osfhandle none[/align]
[align=left] _isatty GetFileType[/align]
[align=left] _locking LockFileEx[/align]
[align=left] _makepath none[/align]
[align=left] _mktemp GetTempFileName[/align]
[align=left] _open_osfhandle none[/align]
[align=left] remove DeleteFile[/align]
[align=left] rename MoveFile[/align]
[align=left] _setmode none[/align]
[align=left] _splitpath none[/align]
[align=left] _stat none[/align]
[align=left] _umask none[/align]
[align=left] _unlink DeleteFile [/align]
[align=left]Creating Text Output Routines[/align]
[align=left] [/align]
[align=left] _displaycursor* SetConsoleCursorInfo[/align]
[align=left] _gettextcolor* GetConsoleScreenBufferInfo[/align]
[align=left] _gettextcursor* GetConsoleCursorInfo[/align]
[align=left] _gettextposition* GetConsoleScreenBufferInfo[/align]
[align=left] _gettextwindow* GetConsoleWindowInfo[/align]
[align=left] _outtext* WriteConsole[/align]
[align=left] _scrolltextwindow* ScrollConsoleScreenBuffer[/align]
[align=left] _settextcolor* SetConsoleTextAttribute[/align]
[align=left] _settextcursor* SetConsoleCursorInfo[/align]
[align=left] _settextposition* SetConsoleCursorPosition[/align]
[align=left] _settextwindow* SetConsoleWindowInfo[/align]
[align=left] _wrapon* SetConsoleMode [/align]
[align=left]Stream Routines[/align]
[align=left] [/align]
[align=left] clearerr none[/align]
[align=left] fclose CloseHandle[/align]
[align=left] _fcloseall none[/align]
[align=left] _fdopen none[/align]
[align=left] feof none[/align]
[align=left] ferror none[/align]
[align=left] fflush FlushFileBuffers[/align]
[align=left] fgetc none[/align]
[align=left] _fgetchar none[/align]
[align=left] fgetpos none[/align]
[align=left] fgets none[/align]
[align=left] _fileno none[/align]
[align=left] _flushall none[/align]
[align=left] fopen CreateFile[/align]
[align=left] fprintf none[/align]
[align=left] fputc none[/align]
[align=left] _fputchar none[/align]
[align=left] fputs none[/align]
[align=left] fread ReadFile[/align]
[align=left] freopen (std handles) SetStdHandle[/align]
[align=left] fscanf none[/align]
[align=left] fseek SetFilePointer[/align]
[align=left] fsetpos SetFilePointer[/align]
[align=left] _fsopen CreateFile[/align]
[align=left] ftell SetFilePointer (check return value)[/align]
[align=left] fwrite WriteFile[/align]
[align=left] getc none[/align]
[align=left] getchar none[/align]
[align=left] gets none[/align]
[align=left] _getw none[/align]
[align=left] printf none[/align]
[align=left] putc none[/align]
[align=left] putchar none[/align]
[align=left] puts none[/align]
[align=left] _putw none[/align]
[align=left] rewind SetFilePointer[/align]
[align=left] _rmtmp none[/align]
[align=left] scanf none[/align]
[align=left] setbuf none[/align]
[align=left] setvbuf none[/align]
[align=left] _snprintf none[/align]
[align=left] sprintf wsprintf[/align]
[align=left] sscanf none[/align]
[align=left] _tempnam GetTempFileName[/align]
[align=left] tmpfile none[/align]
[align=left] tmpnam GetTempFileName[/align]
[align=left] ungetc none[/align]
[align=left] vfprintf none[/align]
[align=left] vprintf none[/align]
[align=left] _vsnprintf none[/align]
[align=left] vsprintf wvsprintf [/align]
[align=left]Low-Level I/O[/align]
[align=left] [/align]
[align=left] _close _lclose, CloseHandle[/align]
[align=left] _commit FlushFileBuffers[/align]
[align=left] _creat _lcreat, CreateFile[/align]
[align=left] _dup DuplicateHandle[/align]
[align=left] _dup2 none[/align]
[align=left] _eof none[/align]
[align=left] _lseek _llseek, SetFilePointer[/align]
[align=left] _open _lopen, CreateFile[/align]
[align=left] _read _lread, ReadFile[/align]
[align=left] _sopen CreateFile[/align]
[align=left] _tell SetFilePointer (check return value)[/align]
[align=left] _write _lread [/align]
[align=left]Console and Port I/O Routines[/align]
[align=left] [/align]
[align=left] _cgets none[/align]
[align=left] _cprintf none[/align]
[align=left] _cputs none[/align]
[align=left] _cscanf none[/align]
[align=left] _getch ReadConsoleInput[/align]
[align=left] _getche ReadConsoleInput[/align]
[align=left] _inp none[/align]
[align=left] _inpw none[/align]
[align=left] _kbhit PeekConsoleInput[/align]
[align=left] _outp none[/align]
[align=left] _outpw none[/align]
[align=left] _putch WriteConsoleInput[/align]
[align=left] _ungetch none [/align]
[align=left]Memory Allocation[/align]
[align=left] [/align]
[align=left] _alloca none[/align]
[align=left] _bfreeseg* none[/align]
[align=left] _bheapseg* none[/align]
[align=left] calloc GlobalAlloc[/align]
[align=left] _expand none[/align]
[align=left] free GlobalFree[/align]
[align=left] _freect* GlobalMemoryStatus[/align]
[align=left] _halloc* GlobalAlloc[/align]
[align=left] _heapadd none[/align]
[align=left] _heapchk none[/align]
[align=left] _heapmin none[/align]
[align=left] _heapset none[/align]
[align=left] _heapwalk none[/align]
[align=left] _hfree* GlobalFree[/align]
[align=left] malloc GlobalAlloc[/align]
[align=left] _memavl GlobalMemoryStatus[/align]
[align=left] _memmax GlobalMemoryStatus[/align]
[align=left] _msize* GlobalSize[/align]
[align=left] realloc GlobalReAlloc[/align]
[align=left] _set_new_handler none[/align]
[align=left] _set_hnew_handler* none[/align]
[align=left] _stackavail* none [/align]
[align=left]Process and Environment Control Routines[/align]
[align=left] [/align]
[align=left] abort none[/align]
[align=left] assert none[/align]
[align=left] atexit none[/align]
[align=left] _cexit none[/align]
[align=left] _c_exit none[/align]
[align=left] _exec functions none[/align]
[align=left] exit ExitProcess[/align]
[align=left] _exit ExitProcess[/align]
[align=left] getenv GetEnvironmentVariable[/align]
[align=left] _getpid GetCurrentProcessId[/align]
[align=left] longjmp none[/align]
[align=left] _onexit none[/align]
[align=left] perror FormatMessage[/align]
[align=left] _putenv SetEnvironmentVariable[/align]
[align=left] raise RaiseException[/align]
[align=left] setjmp none[/align]
[align=left] signal (ctrl-c only) SetConsoleCtrlHandler[/align]
[align=left] _spawn functions CreateProcess[/align]
[align=left] system CreateProcess [/align]
[align=left]String Manipulation[/align]
[align=left] [/align]
[align=left] strcat, wcscat lstrcat[/align]
[align=left] strchr, wcschr none[/align]
[align=left] strcmp, wcscmp lstrcmp[/align]
[align=left] strcpy, wcscpy lstrcpy[/align]
[align=left] strcspn, wcscspn none[/align]
[align=left] _strdup, _wcsdup none[/align]
[align=left] strerror FormatMessage[/align]
[align=left] _strerror FormatMessage[/align]
[align=left] _stricmp, _wcsicmp lstrcmpi[/align]
[align=left] strlen, wcslen lstrlen[/align]
[align=left] _strlwr, _wcslwr CharLower, CharLowerBuffer[/align]
[align=left] strncat, wcsncat none[/align]
[align=left] strncmp, wcsncmp none[/align]
[align=left] strncpy, wcsncpy none[/align]
[align=left] _strnicmp, _wcsnicmp none[/align]
[align=left] _strnset, _wcsnset FillMemory, ZeroMemory[/align]
[align=left] strpbrk, wcspbrk none[/align]
[align=left] strrchr, wcsrchr none[/align]
[align=left] _strrev, _wcsrev none[/align]
[align=left] _strset, _wcsset FillMemory, ZeroMemory[/align]
[align=left] strspn, wcsspn none[/align]
[align=left] strstr, wcsstr none[/align]
[align=left] strtok, wcstok none[/align]
[align=left] _strupr, _wcsupr CharUpper, CharUpperBuffer [/align]
[align=left]MS-DOS Interface[/align]
[align=left] [/align]
[align=left] _bdos* none[/align]
[align=left] _chain_intr* none[/align]
[align=left] _disable* none[/align]
[align=left] _dos_allocmem* GlobalAlloc[/align]
[align=left] _dos_close* CloseHandle[/align]
[align=left] _dos_commit* FlushFileBuffers[/align]
[align=left] _dos_creat* CreateFile[/align]
[align=left] _dos_creatnew* CreateFile[/align]
[align=left] _dos_findfirst* FindFirstFile[/align]
[align=left] _dos_findnext* FindNextFile[/align]
[align=left] _dos_freemem* GlobalFree[/align]
[align=left] _dos_getdate* GetSystemTime[/align]
[align=left] _dos_getdiskfree* GetDiskFreeSpace[/align]
[align=left] _dos_getdrive* GetCurrentDirectory[/align]
[align=left] _dos_getfileattr* GetFileAttributes[/align]
[align=left] _dos_getftime* GetFileTime[/align]
[align=left] _dos_gettime* GetSystemTime[/align]
[align=left] _dos_getvect* none[/align]
[align=left] _dos_keep* none[/align]
[align=left] _dos_open* OpenFile[/align]
[align=left] _dos_read* ReadFile[/align]
[align=left] _dos_setblock* GlobalReAlloc[/align]
[align=left] _dos_setdate* SetSystemTime[/align]
[align=left] _dos_setdrive* SetCurrentDirectory[/align]
[align=left] _dos_setfileattr* SetFileAttributes[/align]
[align=left] _dos_setftime* SetFileTime[/align]
[align=left] _dos_settime* SetSystemTime[/align]
[align=left] _dos_setvect* none[/align]
[align=left] _dos_write* WriteFile[/align]
[align=left] _dosexterr* GetLastError[/align]
[align=left] _enable* none[/align]
[align=left] _FP_OFF* none[/align]
[align=left] _FP_SEG* none[/align]
[align=left] _harderr* See Note 1[/align]
[align=left] _hardresume* See Note 1[/align]
[align=left] _hardretn* See Note 1[/align]
[align=left] _int86* none[/align]
[align=left] _int86x* none[/align]
[align=left] _intdos* none[/align]
[align=left] _intdosx* none[/align]
[align=left] _segread* none [/align]
[align=left]Time[/align]
[align=left] [/align]
[align=left] asctime See Note 2[/align]
[align=left] clock See Note 2[/align]
[align=left] ctime See Note 2[/align]
[align=left] difftime See Note 2[/align]
[align=left] _ftime See Note 2[/align]
[align=left] _getsystime GetLocalTime[/align]
[align=left] gmtime See Note 2[/align]
[align=left] localtime See Note 2[/align]
[align=left] mktime See Note 2[/align]
[align=left] _strdate See Note 2[/align]
[align=left] _strtime See Note 2[/align]
[align=left] time See Note 2[/align]
[align=left] _tzset See Note 2[/align]
[align=left] _utime SetFileTime [/align]
[align=left]Virtual Memory Allocation[/align]
[align=left] [/align]
[align=left] _vfree* See Note 3[/align]
[align=left] _vheapinit* See Note 3[/align]
[align=left] _vheapterm* See Note 3[/align]
[align=left] _vload* See Note 3[/align]
[align=left] _vlock* See Note 3[/align]
[align=left] _vlockcnt* See Note 3[/align]
[align=left] _vmalloc* See Note 3[/align]
[align=left] _vmsize* See Note 3[/align]
[align=left] _vrealloc* See Note 3[/align]
[align=left] _vunlock* See Note 3 [/align]
[align=left]32-Bit C Run Time[/align]
[align=left] [/align]
[align=left] _beginthread CreateThread[/align]
[align=left] _cwait WaitForSingleObject w/ GetExitCodeProcess[/align]
[align=left] _endthread ExitThread[/align]
[align=left] _findclose FindClose[/align]
[align=left] _findfirst FindFirstFile[/align]
[align=left] _findnext FindNextFile[/align]
[align=left] _futime SetFileTime[/align]
[align=left] _get_osfhandle none[/align]
[align=left] _open_osfhandle none[/align]
[align=left] _pclose See Note 4[/align]
[align=left] _pipe CreatePipe[/align]
[align=left] _popen See Note 4 [/align]
[align=left]

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: [/align]
[align=left] [/align]
[align=left] _popen CreatePipe[/align]
[align=left] CreateProcess[/align]
[align=left] [/align]
[align=left] _pclose WaitForSingleObject[/align]
[align=left] CloseHandle [/align]
[align=left]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. [/align]
[align=left]Additional query words: 3.10 3.50 4.00 [/align]
[align=left]Keywords : kbNTOS310 kbNTOS350 kbNTOS351 kbWinOS95
Version :
Platform :
Issue type : [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: