Microsoft KB Archive/313836

= INFO: Map the C Run-Time (CRT) Library Functions to .NET Functions =

Article ID: 313836

Article Last Modified on 11/21/2005

-

APPLIES TO


 * Microsoft Visual C# .NET 2003 Standard Edition
 * Microsoft Visual C++ .NET 2003 Standard Edition
 * Microsoft Visual C# .NET 2002 Standard Edition
 * Microsoft Visual C++ .NET 2002 Standard Edition

-



This article was previously published under Q313836



SUMMARY
The following table lists the equivalent functions in .NET for functions in the standard C library. Locate the standard C function in the left column; the equivalent .NET function appears in the right column.

Note This is an approximate table. Some of the listed .NET functions are similar to the standard C functions, but the .NET function listed may not be an exact match. Also, if you use C++, replace the period character (.) with two colons (::).

If the function that you need is not listed in the table, refer to the More Information section of this article.

ARGUMENT ACCESS
STANDARD C FUNCTION              .NET EQUIVALENT FUNCTION ---

va_arg,va_end,va_start           ParamArray Attribute

---

BUFFER MANIPULATION
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_memccpy,memcpy                  System.Buffer.BlockCopy, System.String.Copy

memchr,wmemchr                   System.String.CopyTo

memcmp,memicmp                   System.Collections.Arraylist.BinarySearch

memmove                          System.String.Compare, System.String.Equals

memset                           System.Buffer.SetByte, System.Collections.Arraylist.Item

_swab                            n/a

---

BYTE CLASSIFICATION
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_isleadbyte                 n/a but see System.Globalization.CultureInfo _ismbbalnum _ismbbalpha _ismbbgraph _ismbbkalnum _ismbbkana _ismbbkprint _ismbbkpunct _ismbblead _ismbbprint _ismbbpunct _ismbbtrail _ismbslead _ismbstrail _mbbtype _mbsbtype

---

CHARACTER CLASSIFICATION
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

isalnum, iswalnum               System.Char.IsLetterOrDigit

_ismbcalnum                     n/a

isalpha, iswalpha, _ismbcalpha, __isascii, iswascii             System.Char.IsLetter

iscntrl, iswcntrl               System.Char.IsControl

__iscsym, __iscsymf             System.Char.IsSymbol

isdigit, iswdigit, _ismbcdigit  System.Char.IsDigit

isgraph, iswgraph, _ismbcgraph  n/a islower, iswlower, _ismbclower  System.Char.IsLower

_ismbchira                      n/a

_ismbckata                      n/a

_ismbclegal                     n/a

_ismbcl0                        n/a

_ismbcl1                        n/a

_ismbcl2                        n/a

_ismbcsymbol                    n/a

isprint, iswprint, _ismbcprint  n/a ispunct, iswpunct, _ismbcpunct  System.Char.IsPunctuation

isspace, iswspace, _ismbcspace  System.Char.IsWhiteSpace

isupper, iswupper, _ismbcupper  System.Char.IsUpper

iswctype                        System.Char.GetType

isxdigit, iswxdigit             System.Char.IsNumber

mblen                           n/a

---

DATA CONVERSION
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

abs                             System.Math.Abs

atof                            System.Convert.ToDouble

atoi                            System.Convert.ToInt32, System.Convert.ToUInt32

_atoi64                         System.Convert.ToInt64, System.Convert.ToUInt64

atol                            System.Convert.ToInt64, System.Convert.ToUInt64

_ecvt                           System.Convert.ToString

_fcvt                           System.Convert.ToString

_gcvt                           System.Convert.ToString

_itoa, _i64toa, _itow, _i64tow  System.Convert.ToString

labs                            System.Math.Abs

_ltoa, _ltow                    System.Convert.ToString

_mbbtombc                       n/a

_mbcjistojms                    n/a

_mbcjmstojis                    n/a

_mbctohira                      n/a

_mbctokata                      n/a

_mbctombb                       n/a

mbstowcs                        n/a

mbtowc                          n/a

strtod, wcstod                  System.Convert.ToDouble

strtol, wcstol                  System.Convert.ToInt64

strtoul, wcstoul                System.Convert.ToUInt64

strxfrm, wcsxfrm                System.Iformattable.ToString __toascii

tolower, towlower, _mbctolower  System.Char.ToLower

_tolower                        System.String.ToLower

toupper, towupper, _mbctoupper  System.Char.ToUpper, _toupper                        System.String.ToUpper

_ultoa, _ultow                  System.Convert.ToString

wcstombs                        n/a

wctomb                          n/a

_wtoi                           n/a

_wtol                           n/a

---

DEBUG
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_ASSERT, _ASSERTE               System.Diagnostics.Debug.Assert

_CrtCheckMemory                 System.Diagnostics.PerformanceCounter

_CrtDbgReport                   System.Diagnostics.Debug.Write, System.Diagnostics.Debug.Writeline, System.Diagnostics.Debug.WriteIf, System.Diagnostics.Debug.WriteLineIf

_CrtDoForAllClientObjects       n/a

_CrtDumpMemoryLeaks             n/a

_CrtIsValidHeapPointer          n/a

_CrtIsMemoryBlock               n/a

_CrtIsValidPointer              n/a

_CrtMemCheckpoint               n/a

_CrtMemDifference               n/a

_CrtMemDumpAllObjectsSince      n/a

_CrtMemDumpStatistics           System.Diagnostics.PerformanceCounter

_CrtSetAllocHook                n/a

_CrtSetBreakAlloc               n/a

_CrtSetDbgFlag                  n/a

_CrtSetDumpClient               n/a

_CrtSetReportFile               n/a

_CrtSetReportHook               n/a

_CrtSetReportMode               n/a

_RPT[0,1,2,3,4]                 n/a

_RPTF[0,1,2,3,4]                n/a

_calloc_dbg                     n/a

_expand_dbg                     n/a

_free_dbg                       n/a

_malloc_dbg                     n/a

_msize_dbg                      n/a

_realloc_dbg                    n/a

---

DIRECTORY CONTROL
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_chdir, _wchdir             System.Environment.CurrentDirectory

_chdrive                    System.Environment.CurrentDirectory

_getcwd, _wgetcwd           System.Environment.CurrentDirectory

_getdcwd, _wgetdcwd         System.Environment.CurrentDirectory

_getdrive                   System.Environment.CurrentDirectory

_mkdir, _wmkdir             System.IO.Directory.CreateDirectory, System.IO.DirectoryInfo.CreateSubdirectory

_rmdir, _wrmdir             System.IO.Directory.Delete

searchenv, _wsearchenv      n/a

---

ERROR HANDLING
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

assert macro                n/a

_ASSERT, _ASSERTE macros    System.Diagnostics.Debug.Assert

clearerr                    n/a

_eof                        n/a

feof                        n/a

ferror                      n/a

_RPT, _RPTF macros          n/a

---

EXCEPTION HANDLING
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_set_se_translator          n/a

set_terminate               n/a

set_unexpected              n/a

terminate                   n/a

unexpected                  System.Exception

---

FILE-HANDLING ROUTINES (File Handle)
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

chsize                       System.IO.Stream.SetLength, System.IO.FileStream.SetLength

_filelength                  System.IO.Stream.SetLength, System.IO.FileStream.SetLength

_fstat, _fstati64            n/a

_isatty                      System.IO.Stream.CanWrite, System.IO.FileStream.CanWrite

_locking                     System.IO.Stream.Lock, System.IO.FileStream.Lock

_setmode                     see System.IO.BinaryReader, System.IO.TextReader

---

FILE-HANDLING ROUTINES (Path or File Name)
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_access, _waccess            System.IO.FileAccess

_chmod, _wchmod              System.IO.File.SetAttributes, System.Security.Permissions.FileIOPermission

_fullpath, _wfullpath        System.IO.File.Create

_get_osfhandle               n/a

_makepath, _wmakepath        System.IO.File.Create

_mktemp, _wmktemp            n/a

_open_osfhandle              System.IO.FileStream.Handle

remove, _wremove             System.IO.File.Remove

rename, _wrename             System.IO.File.Move

_splitpath, _wsplitpath      n/a

_stat, _stati64,             System.IO.File.GetAttributes, _wstat, _wstati64            System.IO.File.GetCreationTime, System.IO.File.GetLastAccessTime, System.IO.File.GetLastWriteTime

_umask                       System.IO.File.SetAttributes

_unlink, _wunlink            System.IO.File.Remove

---

FLOATING-POINT SUPPORT
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

abs                          System.Math.Abs

acos                         System.Math.Acos

asin                         System.Math.Asin

atan, atan2                  System.Math.Atan, System.Math.Atan2

atof                         System.Convert.ToInt64, System.ConvertToUInt64, System.Convert.ToSingle, System.Convert.ToDouble

Bessel functions

_cabs

ceil                         System.Math.Ceiling

_chgsign                     n/a

_clear87, _clearfp           n/a

_control87, _controlfp       n/a

_copysign                    n/a

cos, cosh                    System.Math.Cos, System.Math.Cosh

difftime                     System.DateTime.Subtract

div                          n/a

_ecvt                        System.Convert.ToString

exp                          System.Math.Exp

fabs                         System.Math.Abs

_fcvt                        System.Convert.ToString

_finite                      System.Double.IsInfinity

floor                        System.Math.Floor

fmod                         System.Math.IEEERemainder

_fpclass                     System.Double.IsInfinity, System.Double.IsNegativeInfinity, System.Double.IsPositiveInfinity, System.Double.IsNan

_fpieee_flt                  n/a

frexp                        n/a

_gcvt                        System.Convert.ToString

_hypot                       n/a

_isnan                       System.Double.IsNan

labs                         System.Math.Abs

ldexp                        System.Math.Pow

ldiv                         n/a log                          System.Math.Log

log10                        System.Math.Log10

_logb

_lrotl, _lrotr               n/a

_matherr                     n/a

__max                        System.Math.Max

__min                        System.Math.Min

modf                         n/a

nextafter n/a pow                          System.Math.Pow

printf, wprintf              System.Console.Write, System.Console.WriteLine

rand                         System.Random

_rotl, _rotr                 n/a

_scalb                       n/a

scanf, wscanf                System.Console.Write, System.Console.WriteLine

sin, sinh                    System.Math.Sin, System.Math.Sinh

sqrt                         System.Math.Sqrt

srand                        System.Random

_status87, _statusfp         n/a

strtod                       System.Convert.ToDouble

tan, tanh                    System.Math.Tan, System.Math.Tanh

--

INPUT AND OUTPUT
STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_open, fopen,                System.IO.File.Open, freopen, _fsopen             System.IO.FileStream.Open

fwprintf, fwscanf,           System.Stream.Write, System.Stream.WriteLine, fgetwc, fputwc, fgetws,      System.Console.Read, fputws                       System.Console.ReadLine clearerr                     n/a

fclose, _fcloseall           System.IO.FileStream.Close, System.IO.Stream.Close, System.IO.BinaryReader.Close, System.IO.BinaryWriter.Close, System.IO.TextReader.Close, System.IO.TextWriter.Close, System.IO.StringReader.Close, System.IO.StringWriter.Close, System.IO.StreamReader.Close, System.IO.StreamWriter.Close

_fdopen, wfdopen             System.IO.FileStream.FileStream

feof                         System.IO.FileStream.File.Read

ferror                       n/a

fflush                       System.IO.FileStream.Flush

fgetc, fgetwc                System.IO.FileStream.ReadByte

_fgetchar, _fgetwchar        System.IO.BinaryReader.Read, System.IO.TextReader.Read, System.IO.StringReader.Read, System.IO.StreamReader.Read

fgetpos, fgets, fgetws       System.IO.FileStream.Seek

_fileno                      System.IO.FileStream.Handle

_flushall                    System.IO.FileStream.Flush, System.IO.StreamWriter.Flush, System.IO.TextWriter.Flush, System.IO.StringWriter.Flush, System.IO.BinaryWriter.Flush

fopen, _wfopen               System.IO.File.Open

fprintf, fwprintf            System.IO.TextWriter

fputc, fputwc,_fputchar, _fputwchar                   n/a

fputs, fputws                n/a

fread                        n/a

freopen, _wfreopen           System.IO.File.Open

fscanf, fwscanf              n/a

fseek                        n/a

fsetpos                      System.IO.FileStream.Seek

_fsopen, _wfsopen            n/a

ftell                        n/a

fwrite                       n/a

getc, getwc                  n/a

getchar, getwchar            n/a

gets, getws                  n/a

_getw                        n/a

printf, wprintf              n/a

putc, putwc                  n/a

putchar, putwchar            n/a

puts, _putws                 n/a

_putw                        n/a

rewind                       n/a

_rmtmp                       n/a

scanf, wscanf                n/a

setbuf                       n/a _setmaxstdio                 n/a

setvbuf                      n/a

_snprintf, _snwprintf        n/a

swprintf                     n/a

sscanf, swscanf              n/a

_tempnam, _wtempnam          n/a

tmpfile                      n/a

tmpnam, _wtmpnam             n/a

ungetc, ungetwc              n/a

vfprintf, vfwprintf          n/a

vprintf, vwprintf            n/a

_vsnprintf, _vsnwprintf      n/a

vsprintf, vswprintf          n/a

---

INTERNATIONALIZATION
STANDARD C FUNCTION              .NET EQUIVALENT FUNCTION ---

Setlocale                System.Globalization.CultureInfo

---

MEMORY ALLOCATION
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_alloca                      n/a for all

calloc

_calloc_dbg

_expand

_expand_dbg

free

_free_dbg

_get_sbh_threshold

_heapadd

_heapchk

_heapmin

_heapset

_heapwalk

malloc new

_malloc_dbg

_msize

_msize_dbg

_query_new_handler

_query_new_mode

realloc

_realloc_dbg

_set_new_handler

_set_new_mode

_set_sbh_threshold

---

PROCESS AND ENVIRONMENT CONTROL
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

abort                             n/a

assert                            System.Diagnostics.Debug.Assert

_ASSERT, _ASSERTE macros          System.Diagnostics.Debug.Assert

atexit                            System.Diagnostics.Process.AddOnExit (see Process.OnExit)

_beginthread, _beginthreadex      System.Threading.Thread.Start

_cexit,_c_exit                    System.Diagnostics.Process.CloseMainWindow

_cwait                            System.Diagnostics.Process.WaitForExit

_endthread, _endthreadex          n/a

_execl, _wexecl                   n/a

_execle, _wexecle                 n/a

_execlp, _wexeclp                 n/a

_execlpe, _wexeclpe               n/a

_execv, _wexecv                   n/a

_execve, _wexecve                 n/a

_execvp, _wexecvp                 n/a

_execvpe, _wexecvpe               System.Diagnostics.Process, System.Diagnostics.ProcessInfo

exit,_exit                        System.Diagnostics.Process.Kill

getenv, _wgetenv                  System.Environment.GetEnvironmentVariable

_getpid                           System.Diagnostics.Process.Id

longjmp                           n/a

_onexit                           System.Diagnostics.Process.OnExit

_pclose                           n/a

perror, _wperror                  n/a

_pipe                             n/a

_popen, _wpopen                   n/a

_putenv, _wputenv                 n/a

raise                             n/a

setjmp                            n/a

signal                            n/a

_spawnl, _wspawnl                 n/a

_spawnle, _wspawnle               n/a

_spawnlp, _wspawnlp               n/a

_spawnlpe, _wspawnlpe             n/a

_spawnv, _wspawnv                 n/a

_spawnve, _wspawnve               n/a

_spawnvp, _wspawnvp               n/a

_spawnvpe, _wspawnvpe             n/a system, _wsystem                  System.Diagnostics.ProcessStartInfo, System.Diagnostics.Process

---

SEARCH AND SORTING
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

bsearch                          System.Collections.ArrayList.BinarySearch

_lfind                           System.Collections.ArrayList.Contains

_lsearch                         n/a

qsort                            System.Collections.ArrayList.Sort

---

STRING MANIPULATION
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

mbscoll, _mbsicoll,             System.String.Compare _mbsncoll, _mbsnicoll

_mbsdec, _strdec, _wcsdec       n/a

_mbsinc, _strinc, _wcsinc       n/a

_mbslen                         n/a

_mbsnbcat                       n/a

_mbsnbcmp                       n/a

_mbsnbcnt                       n/a

_mbsnbcpy                       n/a

_mbsnbicmp                      n/a

_mbsnbset                       n/a

_mbsnccnt                       n/a

_mbsnextc, _strnextc, _wcsnextc n/a

_mbsninc. _strninc, _wcsninc    n/a

_mbsspnp, _strspnp, _wcsspnp    n/a

_mbstrlen                       n/a

sprintf, _stprintf              System.Console.Write, System.Console.Writeline

strcat, wcscat, _mbscat         System.String.Concat

strchr, wcschr, _mbschr         n/a

strcmp, wcscmp, _mbscmp         n/a

strcoll, wcscoll, _stricoll, _wcsicoll, _strncoll, _wcsncoll            n/a

_strnicoll, _wcsnicoll          System.String.Compare

strcpy, wcscpy, _mbscpy         System.String.Copy

strcspn, wcscspn, _mbscspn      System.String.Substring

_strdup, _wcsdup, _mbsdup       System.String.Clone

strerror,_strerror              System.Exception.Message

strftime, wcsftime              System.Convert.ToString

_stricmp, _wcsicmp, _mbsicmp    System.String.Compare

strlen, wcslen,                 System.String.Length _mbslen, _mbstrlen

_strlwr, _wcslwr, _mbslwr       System.String.ToLower

strncat, wcsncat, _mbsncat      System.String.Concat

strncmp, wcsncmp, _mbsncmp      System.String.Compare

strncpy, wcsncpy, _mbsncpy      System.String.Copy

wcsncpy, _mbsncpy               System.String.Copy

_strnicmp, _wcsnicmp, _mbsnicmp System.String.Compare

_strnset, _wcsnset, _mbsnset    System.String.Replace

strpbrk, wcspbrk, _mbspbrk      n/a

strrchr, wcsrchr,_mbsrchr       n/a

_strrev, _wcsrev,_mbsrev        n/a

_strset, _wcsset, _mbsset       n/a

strspn, wcsspn, _mbsspn         System.String.Substring

strstr, wcsstr, _mbsstr         n/a

strtok, wcstok, _mbstok         n/a

_strupr, _wcsupr, _mbsupr       System.String.ToUpper

strxfrm, wcsxfrm                n/a

vsprintf, _vstprint             n/a

---

SYSTEM CALLS
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

_findclose                      System.IO.Directory.GetFiles,

_findfirst, _findfirsti64       System.IO.DirectoryInfo.GetFiles

_wfindfirst, _wfindfirsti64     System.IO.DirectoryInfo.GetFileSystemInfos

_findnext, _findnexti64         n/a

_wfindnext, _wfindnexti64       n/a

---

TIME MANAGEMENT
<pre class="fixed_text">STANDARD C FUNCTIONS             .NET EQUIVALENT FUNCTIONS ---

asctime, _wasctime              System.DateTime.ToLongDateString, System.DateTime.ToLongTimeString, System.DateTime.ToShortDateString, System.DateTime.ToShortTimeString, System.DateTime.ToString

clock                           n/a

ctime, _wctime                  System.DateTime.GetDateTimeFormats, System.DateTime.ToString, System.DateTime.ToLongTimeString, System.DateTime.ToShortTimeString

difftime                        System.DateTime.Subtract

_ftime                          System.DateTime.Now

_futime                         System.IO.File.SetLastAccessTime, System.IO.File.SetLastWriteTime, System.IO.File.SetCreationTime

gmtime                          System.DateTime.UtcNow, System.DateTime.ToUniversalTime

localtime                       System.DateTime.ToLocalTime

mktime                          System.DateTime.DateTime

_strdate, _wstrdate             System.DateTime.Parse

strftime, wcsftime,             System.DateTime.ToLongDateString, _strtime, _wstrtime             System.DateTime.ToLongTimeString, System.DateTime.ToShortDateString, System.DateTime.ToShortTimeString, System.DateTime.ToString

time                            n/a _tzset                          n/a

_utime, _wutime                 n/a

<div class="moreinformation_section">

MORE INFORMATION
If the function that you need is not listed in the previous table, then you can use PInvoke to call the standard C function. For examples of how to use PInvoke, refer to the following Microsoft Developer Network (MSDN) article:

Platform Invoke Examples

Additional query words: vc7 vc++.net vc++ .net

Keywords: kbinfo kbdevstudio KB313836

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.