Mono.Posix 1.0.5000.0 2.0.0.0 4.0.0.0 All public static members of this type are probably safe for multithreaded operations within managed code. (Methods which are obviously unsafe are synchronized, such as , but any hidden dependencies between e.g. and are not protected.) No multithreading guarantee is made between managed and unmanaged code. Check your operating system documentation for more information. System.Object C Standard Library functions. The Stdlib class exports only functions that are part of the standard C library, from the ISO-9899 standard (C99). As such, exports should be portable to any operating system supporting the standard C library, such as Microsoft Windows, as opposed to which only supports Unix-like operating systems.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Void `` The low-order eight bits of are generally made available to a parent process. Perform normal program termination.

  The _Exit(3) function terminates without calling the functions registered with the (3) function, and may or may not perform the other actions listed in (3).

  The C Standard (ISO/IEC 9899:1999 ("ISO C99")) defines the values 0, , and as possible values of . Cooperating processes may use other values; in a program which might be called by a mail transfer agent, the values described in sysexits(3) may be used to provide more information to the parent process.

  This function never returns.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 0 Fully Buffered. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 1 Line buffered. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 2 Specify unbuffered FILE streams. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void Cause abnormal program termination.

  The abort() function causes abnormal program termination to occur, unless the signal is being caught and the signal handler does not return.

  Any open streams are flushed and closed.

  The abort() function never returns.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 8192 Buffer size. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.IntPtr `` `` Number of objects to allocate. Size of each object to allocate. Allocate and zero-fill memory. The calloc function returns a pointer to the allocated memory if successful; otherwise is returned and returns .

  The calloc() function allocates space for objects, each bytes in length. The result is identical to calling (3) with an argument of "nmemb * size," with the exception that the allocated memory is explicitly initialized to zero bytes.

  The return value of calloc must be passed to to avoid a memory leak.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The FILE stream to clear end-of-file and error indicators on. Clear FILE stream status. The clearerr() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error. Clears the end-of-file and error indicators for the stream pointed to by .
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 -1 End Of File. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void `` The low-order eight bits of are generally made available to a parent process. Terminates the process that calls the function with the exit status .

  The exit function terminates a process.

  Before termination, exit() performs the following functions in the order listed:

  Call the functions registered with the (3) function, in the reverse order of their registration.
  Flush all open output streams
  Close all open streams
  Unlink all files created with the (3) function.

  The low-order eight bits of the argument is made available to a parent process which has called a (2)-family function.

  The C Standard (ISO/IEC 9899:1999 ("ISO C99")) defines the values 0, , and as possible values of . Cooperating processes may use other values; in a program which might be called by a mail transfer agent, the values described in sysexits(3) may be used to provide more information to the parent process.

  Note that exit() does nothing to prevent bottomless recursion should a function registered using (3) itself call exit(). Such functions must call () instead (although this has other effects as well which may not be desired).

  This function never returns.

  `using System; using Mono.Unix.Native; using System.Runtime.InteropServices; class Test { public void SignalCatcher(int v) { // sleep signal caught. Console.WriteLine("Signal received: " + v); // this line will not be printed because process exits... Console.WriteLine("Exiting with: " + Stdlib.exit(9)); } public static void Main(string[] args) { Test t = new Test(); Console.Write("waiting for event..."); string x = Console.ReadLine(); } public Test() { // create a signal handler delegate for sleep signals Console.WriteLine("signal result: " + Syscall.signal(Signum.SIGALRM, new SignalHandler (SignalCatcher))); // send a sleep signal Syscall.alarm(3); } }`
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 1 Failure program exit status. This is the value to return from Main when an error occurs.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 0 Success program exit status. This is the value to return from Main when no errors occur.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The FILE stream to close. Close a FILE stream.

  Upon successful completion 0 is returned. Otherwise, is returned and the global variable errno is set to indicate the error. In either case no further access to the stream is possible.

  The fclose() function may also fail and set errno for any of the errors specified for the routines (2) or (3).

  The fclose() function dissociates the named stream from its underlying file or set of functions. If the stream was being used for output, any buffered data is written first, using (3).

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The FILE stream on which to test the end-of-file indicator. Test end-of-file indicator for the FILE stream. Returns non-zero if the end-of-stream indicator for is set. Otherwise, 0 is returned. The function feof() tests the end-of-file indicator for the stream pointed to by stream, returning non-zero if it is set. The end-of-file indicator can only be cleared by the function ().
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The FILE stream on which to test the error indicator. Tests the error indicator for the FILE stream. Returns non-zero if the error indicator is set on . Otherwise, 0 is returned. The function ferror() tests the error indicator for the stream pointed to by stream, returning non-zero if it is set. The error indicator can only be reset by the () function.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The FILE stream to flush. Flush a FILE stream. Upon successful completion 0 is returned. Otherwise, is returned and the global variable errno is set to indicate the error.

  The following errors are specified:

  Error
  Details
  The argument is not an open stream, or not a stream open for writing.

  The function fflush may also fail and set errno for any of the errors specified for (2).

  The function fflush() forces a write of all buffered data for the given output or update via the stream's underlying write function. The open status of the stream is unaffected.

  If the stream argument is , fflush() flushes all open output streams.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` FILE stream to read a character from. Get next character from a FILE input stream. If successful, returns the next requested object from the stream. Character values are returned as an unsigned char converted to an int. If the stream is at end-of-file or a read error occurs, the routines return . The routines (3) and (3) must be used to distinguish between end-of-file and error. If an error occurs, use indicates the error. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return until the condition is cleared with (3). The fgetc() function obtains the next input character (if present) from the stream pointed at by stream, or the next character pushed back on the stream via (3).
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` FILE stream to retreive the current file position for. Where to store the current file position. Retrieve the current file position of a FILE stream.

  Returns 0 if successful; otherwise -1 is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument is not not a seekable stream
  The argument is invalid or the resulting file-position indicator would be set to a negative value.
  The resulting file offset would be a value which cannot be represented correctly in an object of type for () and ().
  The file descriptor underlying stream is associated with a pipe or FIFO or file-position indicator value is unspecified (see (3)).

  fgetpos may also fail for any of the error specified for the routines (3), (2), (2), and (3)

  The fgetpos() is an alternate interfaces for retrieving the current position in the file, similar to (), except that the current position is stored in an opaque object of type pointed to by pos. This provides a portable way to seek to offsets larger than those that can be represented by a long int. They may also store additional state information in the object to facilitate seeking within files containing multibyte characters with state-dependent encodings.

  The value of is modified by this operation.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Text.StringBuilder `` `` Where to store the next line of text from . The FILE stream to read a line from. Read a line from a FILE stream. See the documentation. Identical to calling fgets(, .Capacity, ). See the documentation.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Text.StringBuilder `` `` `` Where to store the next line of text from . The maximum number of characters that can hold. The FILE stream to read a line from. Read a line from a FILE stream.

  Upon successful completion, returns . If end-of-file occurs before any characters are read, returns and the contents of remains unchanged. If an error occurs, is returned and the contents of are indeterminate. fgets does not distinguish between end-of-file and error, and callers must use (3) and (3) to determine which occurred.

  The following errors are specified:

  Error
  Details
  The given is not a readable stream.

  fgetpos may also fail for any of the error specified for the routines (3), (2), (2), or (3).

  The fgets() function reads at most one less than the number of characters specified by from the given and stores them in the string . Reading stops when a newline character is found, at end-of-file or error. The newline, if any, is retained. If any characters are read and there is no error, a '\0' character is appended to end the string.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 4096 Maximum filename length. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` `` The filename to open. The file mode for opening. See the Remarks section for more details. Open a file and associate a FILE stream with it.

  Upon successful completion, returns a FILE pointer. Otherwise, is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument was invalid.

  fopen may also fail for any of the error specified for the routines (3) and (2).

  The fopen() function opens the file whose name is the string pointed to by path and associates a stream with it.

  Use to close the FILE stream.

  The argument points to a string beginning with one of the following sequences (Additional characters may follow these sequences.):

  Description
  "r"
  Open text file for reading. The stream is positioned at the beginning of the file.
  "r+"
  Open for reading and writing. The stream is positioned at the beginning of the file.
  "w"
  Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.
  "w+"
  Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.
  "a"
  Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file. Subsequent writes to the file will always end up at the then current end of file, irrespective of any intervening (3) or similar.
  "a+"
  Open for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file. Subsequent writes to the file will always end up at the then current end of file, irrespective of any intervening (3) or similar.

  The string can also include the letter "b" either as a third character or as a character between the characters in any of the two-character strings described above, and is used to enable binary reading/writing on platforms which have different text/binary encodings (read: Microsoft Windows). The default (non-b) is text encoding.

  Any created files will have mode S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (0666), as modified by the process' umask value (see (2)).

  ANSI C requires that a file positioning function intervene between output and input, unless an input operation encounters end-of-file.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 16 Maximum number of FILE pointer that may be open at one time. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` FILE stream to write to. The string to write on . Print to a FILE stream. Returns the number of characters printed or a negative value if an error occurs, and indicates the error.

  The following errors are specified:

  Error
  Details
  An invalid wide character code was encountered
  Insufficient storage space is available.

  Any of the errors documented for the system call may also be returned.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use fprintf (IntPtr, string) instead.")
  System.Int32 `` `` `System.ParamArray` FILE stream to write to. The message format. Arguments to the message format. Print to a FILE stream. Returns the number of characters printed or a negative value if an error occurs, and indicates the error.

  The following errors are specified:

  Error
  Details
  An invalid wide character code was encountered
  Insufficient storage space is available.

  Any of the errors documented for the system call may also be returned.

  The fprintf() family of functions produces output according to a format as described below. fprintf() writes output to the given output .

  These functions write the output under the control of a string that specifies how subsequent arguments (or arguments accessed via the variable-length argument facilities of stdarg(3)) are converted for output.

  The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the % character. The arguments must correspond properly (after type promotion) with the conversion specifier. After the %, the following appear in sequence:

  An optional field, consisting of a decimal digit string followed by a $, specifying the next argument to access. If this field is not provided, the argument following the last argument accessed will be used. Arguments are numbered starting at 1. If unaccessed arguments in the format string are interspersed with ones that are accessed the results will be indeterminate.
  Zero or more of the following flags:

  Flag
  Description
  '#'
  The value should be converted to an "alternate form". For c, d, i, n, p, s, and u conversions, this option has no effect. For o conversions, the precision of the number is increased to force the first character of the output string to a zero (except if a zero value is printed with an explicit precision of zero). For x and X conversions, a non-zero result has the string '0x' (or '0X' for X conversions) prepended to it. For a, A, e, E, f, F, g, and G conversions, the result will always contain a decimal point, even if no digits follow it (normally, a decimal point appears in the results of those conversions only if a digit follows). For g and G conversions, trailing zeros are not removed from the result as they would otherwise be.
  '0' (zero)
  Zero padding. For all conversions except n, the converted value is padded on the left with zeros rather than blanks. If a precision is given with a numeric conversion (d, i, o, u, i, x, and X), the 0 flag is ignored.
  '-'
  A negative field width flag; the converted value is to be left adjusted on the field boundary. Except for n conversions, the converted value is padded on the right with blanks, rather than on the left with blanks or zeros. A - overrides a 0 if both are given.
  '' (space)
  A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).
  '+'
  A sign must always be placed before a number produced by a signed conversion. A + overrides a space if both are used.
  '''
  Decimal conversions (d, u, or i) or the integral portion of a floating point conversion (f or F) should be grouped and separated by thousands using the non-monetary separator returned by (3).
  An optional decimal digit string specifying a minimum field width. If the converted value has fewer characters than the field width, it will be padded with spaces on the left (or right, if the left-adjustment flag has been given) to fill out the field width.
  An optional precision, in the form of a period . followed by an optional digit string. If the digit string is omitted, the precision is taken as zero. This gives the minimum number of digits to appear for d, i, o, u, x, and X conversions, the number of digits to appear after the decimal-point for a, A, e, E, f, and F conversions, the maximum number of significant digits for g and G conversions, or the maximum number of characters to be printed from a string for s conversions.
  An optional length modifier, that specifies the size of the argument. The following length modifiers are valid for the d, i, n, o, u, x, or X conversion:

  Modifier
  d, i o, u, x, X n
  hh
  signed char unsigned char signed char *
  h
  short unsigned short short *
  l (ell)
  long unsigned long unsigned long *
  ll (ell ell)
  long long unsigned long long long long *
  j
  intmax_t uintmax_t intmax_t *
  t
  ptrdiff_t(see note)ptrdiff_t *
  z
  (see note)size_t(see note)
  q(deprecated)
  quad_t u_quad_t quad_t *

  the t modifier, when applied to a o, u, x, or X conversion, indicates that the argument is of an unsigned type equivalent in size to a ptrdiff_t. The z modifier, when applied to a d or i conversion, indicates that the argument is of a signed type equivalent in size to a size_t. Similarly, when applied to an n conversion, it indicates that the argument is a pointer to a signed type equivalent in size to a size_t.

  The following length modifier is valid for the a, A, e, E, f, F, g, or G conversion:

  Modifier
  a, A, e, E, f, F, g, G
  L
  long double

  The following length modifier is valid for the c or s conversion:

  Modifier
  c s
  l (ell)
  wint_t wchar_t *
A character that specifies the type of conversion to be applied.

A field width or precision, or both, may be indicated by an asterisk '*' or an asterisk followed by one or more decimal digits and a '$' instead of a digit string. In this case, an int argument supplies the field width or precision. A negative field width is treated as a left adjustment flag followed by a positive field width; a negative precision is treated as though it were missing. If a single format directive mixes positional (nn$) and non-positional arguments, the results are undefined

The conversion specifiers and their meanings are:

Specifier
Meaning
diouxX
The int (or appropriate variant) argument is converted to signed decimal (d and i), unsigned octal (o), unsigned decimal (u), or unsigned hexadecimal (x and X) notation. The letters "abcdef" are used for x conversions; the letters "ABCDEF" are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros.
DOU
The long int argument is converted to signed decimal, unsigned octal, or unsigned decimal, as if the format had been ld, lo, or lu respectively. These conversion characters are deprecated, and will eventually disappear.
eE
The double argument is rounded and converted in the style [-]d.ddde±dd where there is one digit before the decimal-point character and the number of digits after it is equal to the precision; if the precision is missing, it is taken as 6; if the precision is zero, no decimal-point character appears. An E conversion uses the letter 'E' (rather than 'e') to introduce the exponent. The exponent always contains at least two digits; if the value is zero, the exponent is 00.

For a, A, e, E, f, F, g, and G conversions, positive and negative infinity are represented as inf and -inf respectively when using the lowercase conversion character, and INF and -INF respectively when using the uppercase conversion character. Similarly, NaN is represented as nan when using the lowercase conversion, and NAN when using the uppercase conversion.

fF
The double argument is rounded and converted to decimal notation in the style [-]ddd.ddd, where the number of digits after the decimal-point character is equal to the precision specification. If the precision is missing, it is taken as 6; if the precision is explicitly zero, no decimal-point character appears. If a decimal point appears, at least one digit appears before it.
gG
The double argument is converted in style f or e (or F or E for G conversions). The precision specifies the number of significant digits. If the precision is missing, 6 digits are given; if the precision is zero, it is treated as 1. Style e is used if the exponent from its conversion is less than -4 or greater than or equal to the precision. Trailing zeros are removed from the fractional part of the result; a decimal point appears only if it is followed by at least one digit.
aA
The double argument is rounded and converted to hexadecimal notation in the style [-]0xh.hhhp[±]d, where the number of digits after the hexadecimal-point character is equal to the precision specification. If the precision is missing, it is taken as enough to represent the floating-point number exactly, and no rounding occurs. If the precision is zero, no hexadecimal-point character appears. The p is a literal character 'p', and the exponent consists of a positive or negative sign followed by a decimal number representing an exponent of 2. The A conversion uses the prefix "0X" (rather than "0x"), the letters "ABCDEF" (rather than "abcdef") to represent the hex digits, and the letter 'P' (rather than 'p') to separate the mantissa and exponent.

Note that there may be multiple valid ways to represent floating-point numbers in this hexadecimal format. For example, 0x3.24p+0, 0x6.48p-1 and 0xc.9p-2 are all equivalent. The format chosen depends on the internal representation of the number, but the implementation guarantees that the length of the mantissa will be minimized. Zeroes are always represented with a mantissa of 0 (preceded by a '-' if appropriate) and an exponent of +0.

C
Treated as c with the l (ell) modifier.
c
The int argument is converted to an unsigned char, and the resulting character is written.

If the l (ell) modifier is used, the wint_t argument shall be converted to a wchar_t, and the (potentially multi-byte) sequence representing the single wide character is written, including any shift sequences. If a shift sequence is used, the shift state is also restored to the original state after the character.

S
Treated as s with the l (ell) modifier.
s
The char * argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating NUL character; if a precision is specified, no more than the number specified are written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating NUL character.

If the l (ell) modifier is used, the wchar_t * argument is expected to be a pointer to an array of wide characters (pointer to a wide string). For each wide character in the string, the (potentially multi-byte) sequence representing the wide character is written, including any shift sequences. If any shift sequence is used, the shift state is also restored to the original state after the string. Wide characters from the array are written up to (but not including) a terminating wide NUL character; if a precision is specified, no more than the number of bytes specified are written (including shift sequences). Partial characters are never written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the number of bytes required to render the multibyte representation of the string, the array must contain a terminating wide NUL character.

p
The void * pointer argument is printed in hexadecimal (as if by '%#x' or '%#lx').
n
The number of characters written so far is stored into the integer indicated by the int * (or variant) pointer argument. No argument is converted.
%
A '%' is written. No argument is converted. The complete conversion specification is '%%'.

The decimal point character is defined in the program's locale (category LC_NUMERIC)

In no case does a non-existent or small field width cause truncation of a numeric field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The charater to write. The FILE stream to write to. Output a character to a FILE stream. Returns the character written. If an error occurrs, the value is returned. The fputc() function writes the character (converted to an "unsigned char") to the output stream pointed to by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The string to write. The FILE stream to write to. Output a line to a FILE stream.

  The fputs function returns 0 on success and on error, and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument not a writable stream.

  fputs may also fail for any of the errors specified for the routines (2).

  The function fputs() writes the string pointed to by to the stream pointed to by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` Where to store the binary data read. The binary FILE stream to read from. Read from a binary stream.

  The function fread() advances the file position indicator for the stream by the number of bytes read. It returns the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fread() does not distinguish between end-of-file and error, and callers must use (3) and (3) to determine which occurred.

  The function fread() reads .Length bytes from the stream pointed to by , storing them at the location given by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` Where to store the binary data read. The size of each object to read. The number of objects to read. The binary FILE stream to read from. Read from a binary stream.

  The function fread() advances the file position indicator for the stream by the number of bytes read. It returns the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fread() does not distinguish between end-of-file and error, and callers must use (3) and (3) to determine which occurred.

  The function fread() reads objects, each bytes long, from the stream pointed to by , storing them at the location given by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` Where to store the binary data read. The size of each object to read. The number of objects to read. The binary FILE stream to read from. Read from a binary stream.

  The function fread() advances the file position indicator for the stream by the number of bytes read. It returns the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fread() does not distinguish between end-of-file and error, and callers must use (3) and (3) to determine which occurred.

  The function fread() reads objects, each bytes long, from the stream pointed to by , storing them at the location given by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` Where to store the binary data read. The size of each object to read. The number of objects to read. The binary FILE stream to read from. Read from a binary stream.

  The function fread() advances the file position indicator for the stream by the number of bytes read. It returns the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fread() does not distinguish between end-of-file and error, and callers must use (3) and (3) to determine which occurred.

  The function fread() reads objects, each bytes long, from the stream pointed to by , storing them at the location given by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void `` The start of a memory area to free. Free allocated memory. The free() function causes the allocated memory referenced by to be made available for future allocations. If is , no action occurs.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` `` `` The filename to open. The file mode for opening. See the Remarks section for more details. The FILE stream to reopen. Reopen a FILE stream.

  Upon successful completion, returns a FILE pointer. Otherwise, is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument was invalid.

  freopen may also fail for any of the error specified for the routines (3), (2), (3), and (3).

  The freopen() function opens the file whose name is the string pointed to by and associates the stream pointed to by with it. The original stream (if it exists) is closed.

  Use to close the returned FILE stream.

  The argument points to a string beginning with one of the following sequences (Additional characters may follow these sequences.):

  Description
  "r"
  Open text file for reading. The stream is positioned at the beginning of the file.
  "r+"
  Open for reading and writing. The stream is positioned at the beginning of the file.
  "w"
  Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.
  "w+"
  Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.
  "a"
  Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file. Subsequent writes to the file will always end up at the then current end of file, irrespective of any intervening (3) or similar.
  "a+"
  Open for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file. Subsequent writes to the file will always end up at the then current end of file, irrespective of any intervening (3) or similar.

  The string can also include the letter "b" either as a third character or as a character between the characters in any of the two-character strings described above, and is used to enable binary reading/writing on platforms which have different text/binary encodings (read: Microsoft Windows). The default (non-b) is text encoding.

  If the argument is , freopen() attempts to re-open the file associated with with a new mode. The new mode must be compatible with the mode that the stream was originally opened with:

  Streams originally opened with mode "r" can only be reopened with that same mode.
  Streams originally opened with mode "a" can be reopened with the same mode, or mode "w".
  Streams originally opened with mode "w" can be reopened with the same mode, or mode "a".
  Streams originally opened with mode "r+", "w+", or "a+" can be reopened with any mode.

  The primary use of the freopen() function is to change the file associated with a standard text stream (, , or ).

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` `` `` FILE stream to seek. Number of bytes to add to the the file offset specified by . File offset to add to. Set file position for a FILE stream.

  Returns 0 if successful; otherwise -1 is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument is not not a seekable stream
  The argument is invalid or the resulting file-position indicator would be set to a negative value.
  The resulting file offset would be a value which cannot be represented correctly in an object of type for () and ().
  The file descriptor underlying stream is associated with a pipe or FIFO or file-position indicator value is unspecified (see (3)).

  fseek may also fail for any of the error specified for the routines (3), (2), (2), and (3)

  The fseek() function sets the file position indicator for the stream pointed to by . The new position, measured in bytes, is obtained by adding bytes to the position specified by . If whence is set to , , or , the offset is relative to the start of the file, the current position indicator, or end-of-file, respectively. A successful call to the fseek() function clears the end-of-file indicator for the stream and undoes any effects of the (3) and (3) functions on the same stream.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` FILE stream to set the current file position for. The file position to seek to. Sets the current file position of a FILE stream.

  Returns 0 if successful; otherwise -1 is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument is not not a seekable stream
  The argument is invalid or the resulting file-position indicator would be set to a negative value.
  The resulting file offset would be a value which cannot be represented correctly in an object of type for () and ().
  The file descriptor underlying stream is associated with a pipe or FIFO or file-position indicator value is unspecified (see (3)).

  fsetpos may also fail for any of the error specified for the routines (3), (2), (2), and (3)

  The fsetpos() function is an alternate interfaces for setting the current position in the file, similar to (), except that the current position is stored in an opaque object of type pointed to by pos. This provides a portable way to seek to offsets larger than those that can be represented by a long int. It may also store additional state information in the object to facilitate seeking within files containing multibyte characters with state-dependent encodings.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` FILE stream to get the file position from. Get current file position for FILE stream.

  Returns the current file offset if successful; otherwise -1 is returned and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument is not not a seekable stream
  The argument is invalid or the resulting file-position indicator would be set to a negative value.
  The resulting file offset would be a value which cannot be represented correctly in an object of type for () and ().
  The file descriptor underlying stream is associated with a pipe or FIFO or file-position indicator value is unspecified (see (3)).

  ftell may also fail for any of the error specified for the routines (3), (2), (2), and (3)

  The ftell() function obtains the current value of the file position indicator for the stream pointed to by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` The data to write. The binary FILE stream to write to. Write to a binary FILE stream.

  The function fwrite() advance the file position indicator for the stream by the number of bytes written. It returns the number of objects written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fwrite() returns a value less than only if a write error has occurred.

  The function fwrite() writes .Length bytes to the stream pointed to by , obtaining them from the location given by .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` The data to write. The size of each object to write. The number of objects to write. The binary FILE stream to write to. Write to a binary FILE stream.

  The function fwrite() advance the file position indicator for the stream by the number of bytes written. It returns the number of objects written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fwrite() returns a value less than only if a write error has occurred.

  The function fwrite() writes objects, each bytes long, to the stream pointed to by , obtaining them from the location given by .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` The data to write. The size of each object to write. The number of objects to write. The binary FILE stream to write to. Write to a binary FILE stream.

  The function fwrite() advance the file position indicator for the stream by the number of bytes written. It returns the number of objects written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fwrite() returns a value less than only if a write error has occurred.

  The function fwrite() writes objects, each bytes long, to the stream pointed to by , obtaining them from the location given by .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` `` `` `` The data to write. The size of each object to write. The number of objects to write. The binary FILE stream to write to. Write to a binary FILE stream.

  The function fwrite() advance the file position indicator for the stream by the number of bytes written. It returns the number of objects written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).

  The function fwrite() returns a value less than only if a write error has occurred.

  The function fwrite() writes objects, each bytes long, to the stream pointed to by , obtaining them from the location given by .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` FILE stream to read a character from. Get next character from a FILE input stream. If successful, returns the next requested object from the stream. Character values are returned as an unsigned char converted to an int. If the stream is at end-of-file or a read error occurs, the routines return . The routines (3) and (3) must be used to distinguish between end-of-file and error. If an error occurs, use indicates the error. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return until the condition is cleared with (3). The getc() function obtains the next input character (if present) from the stream pointed at by stream, or the next character pushed back on the stream via (3).
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Get next character from standard input. If successful, returns the next requested object from the stream. Character values are returned as an unsigned char converted to an int. If the stream is at end-of-file or a read error occurs, the routines return . The routines (3) and (3) must be used to distinguish between end-of-file and error. If an error occurs, use indicates the error. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return until the condition is cleared with (3). The getchar() function is equivalent to (), obtaining the next input character (if present) from , or the next character pushed back on stdin via (3).
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String `` The environment variable to read. Read an environment variable. The getenv() function returns the value of the environment variable as a string. If the variable name is not in the current environment, is returned. The getenv() function obtains the current value of the environment variable, .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Errno Reads and translates errno. To be added. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 20 The number of characters filled by (3). To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.IntPtr `` Amount of memory to allocate. Allocate memory. The malloc() function returns a pointer to the allocated memory if successful; otherwise a pointer is returned and returns .

  The malloc() function allocates bytes of memory. The allocated space is suitably aligned (after possible pointer coercion) for storage of any type of object. If the space is at least bytes in length (see (3)), the returned memory will be page boundary aligned as well. If malloc() fails, is returned.

  You should the return value to avoid a memory leak.

  Note that malloc() does NOT normally initialize the returned memory to zero bytes.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 6 To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The error message prefix to print. Print an error message to . The perror() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error. The perror() function finds the error message corresponding to the current value of and writes it, followed by a newline, to the standard error file descriptor. If the argument string is not and does not point to the null character, this string is prepended to the message string and separated from it by a colon and space (": "); otherwise, only the error message string is printed.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The message to print. Prints a message on . Returns the number of characters printed or a negative value if an error occurs, and indicates the error.

  The following errors are specified:

  Error
  Details
  An invalid wide character code was encountered
  Insufficient storage space is available.

  Any of the errors documented for the system call may also be returned.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use printf (string) instead.")
  System.Int32 `` `System.ParamArray` The message format. Arguments for the message format. Prints a message on . Returns the number of characters printed or a negative value if an error occurs, and indicates the error.

  The following errors are specified:

  Error
  Details
  An invalid wide character code was encountered
  Insufficient storage space is available.

  Any of the errors documented for the system call may also be returned.

  The printf() family of functions produces output according to a format as described below. printf() writes output to the given output .

  These functions write the output under the control of a string that specifies how subsequent arguments (or arguments accessed via the variable-length argument facilities of stdarg(3)) are converted for output.

  The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the % character. The arguments must correspond properly (after type promotion) with the conversion specifier. After the %, the following appear in sequence:

  An optional field, consisting of a decimal digit string followed by a $, specifying the next argument to access. If this field is not provided, the argument following the last argument accessed will be used. Arguments are numbered starting at 1. If unaccessed arguments in the format string are interspersed with ones that are accessed the results will be indeterminate.
  Zero or more of the following flags:

  Flag
  Description
  '#'
  The value should be converted to an "alternate form". For c, d, i, n, p, s, and u conversions, this option has no effect. For o conversions, the precision of the number is increased to force the first character of the output string to a zero (except if a zero value is printed with an explicit precision of zero). For x and X conversions, a non-zero result has the string '0x' (or '0X' for X conversions) prepended to it. For a, A, e, E, f, F, g, and G conversions, the result will always contain a decimal point, even if no digits follow it (normally, a decimal point appears in the results of those conversions only if a digit follows). For g and G conversions, trailing zeros are not removed from the result as they would otherwise be.
  '0' (zero)
  Zero padding. For all conversions except n, the converted value is padded on the left with zeros rather than blanks. If a precision is given with a numeric conversion (d, i, o, u, i, x, and X), the 0 flag is ignored.
  '-'
  A negative field width flag; the converted value is to be left adjusted on the field boundary. Except for n conversions, the converted value is padded on the right with blanks, rather than on the left with blanks or zeros. A - overrides a 0 if both are given.
  '' (space)
  A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).
  '+'
  A sign must always be placed before a number produced by a signed conversion. A + overrides a space if both are used.
  '''
  Decimal conversions (d, u, or i) or the integral portion of a floating point conversion (f or F) should be grouped and separated by thousands using the non-monetary separator returned by (3).
  An optional decimal digit string specifying a minimum field width. If the converted value has fewer characters than the field width, it will be padded with spaces on the left (or right, if the left-adjustment flag has been given) to fill out the field width.
  An optional precision, in the form of a period . followed by an optional digit string. If the digit string is omitted, the precision is taken as zero. This gives the minimum number of digits to appear for d, i, o, u, x, and X conversions, the number of digits to appear after the decimal-point for a, A, e, E, f, and F conversions, the maximum number of significant digits for g and G conversions, or the maximum number of characters to be printed from a string for s conversions.
  An optional length modifier, that specifies the size of the argument. The following length modifiers are valid for the d, i, n, o, u, x, or X conversion:

  Modifier
  d, i o, u, x, X n
  hh
  signed char unsigned char signed char *
  h
  short unsigned short short *
  l (ell)
  long unsigned long unsigned long *
  ll (ell ell)
  long long unsigned long long long long *
  j
  intmax_t uintmax_t intmax_t *
  t
  ptrdiff_t(see note)ptrdiff_t *
  z
  (see note)size_t(see note)
  q(deprecated)
  quad_t u_quad_t quad_t *

  the t modifier, when applied to a o, u, x, or X conversion, indicates that the argument is of an unsigned type equivalent in size to a ptrdiff_t. The z modifier, when applied to a d or i conversion, indicates that the argument is of a signed type equivalent in size to a size_t. Similarly, when applied to an n conversion, it indicates that the argument is a pointer to a signed type equivalent in size to a size_t.

  The following length modifier is valid for the a, A, e, E, f, F, g, or G conversion:

  Modifier
  a, A, e, E, f, F, g, G
  L
  long double

  The following length modifier is valid for the c or s conversion:

  Modifier
  c s
  l (ell)
  wint_t wchar_t *
  A character that specifies the type of conversion to be applied.

  A field width or precision, or both, may be indicated by an asterisk '*' or an asterisk followed by one or more decimal digits and a '$' instead of a digit string. In this case, an int argument supplies the field width or precision. A negative field width is treated as a left adjustment flag followed by a positive field width; a negative precision is treated as though it were missing. If a single format directive mixes positional (nn$) and non-positional arguments, the results are undefined

  The conversion specifiers and their meanings are:

  Specifier
  Meaning
  diouxX
  The int (or appropriate variant) argument is converted to signed decimal (d and i), unsigned octal (o), unsigned decimal (u), or unsigned hexadecimal (x and X) notation. The letters "abcdef" are used for x conversions; the letters "ABCDEF" are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros.
  DOU
  The long int argument is converted to signed decimal, unsigned octal, or unsigned decimal, as if the format had been ld, lo, or lu respectively. These conversion characters are deprecated, and will eventually disappear.
  eE
  The double argument is rounded and converted in the style [-]d.ddde±dd where there is one digit before the decimal-point character and the number of digits after it is equal to the precision; if the precision is missing, it is taken as 6; if the precision is zero, no decimal-point character appears. An E conversion uses the letter 'E' (rather than 'e') to introduce the exponent. The exponent always contains at least two digits; if the value is zero, the exponent is 00.

  For a, A, e, E, f, F, g, and G conversions, positive and negative infinity are represented as inf and -inf respectively when using the lowercase conversion character, and INF and -INF respectively when using the uppercase conversion character. Similarly, NaN is represented as nan when using the lowercase conversion, and NAN when using the uppercase conversion.

  fF
  The double argument is rounded and converted to decimal notation in the style [-]ddd.ddd, where the number of digits after the decimal-point character is equal to the precision specification. If the precision is missing, it is taken as 6; if the precision is explicitly zero, no decimal-point character appears. If a decimal point appears, at least one digit appears before it.
  gG
  The double argument is converted in style f or e (or F or E for G conversions). The precision specifies the number of significant digits. If the precision is missing, 6 digits are given; if the precision is zero, it is treated as 1. Style e is used if the exponent from its conversion is less than -4 or greater than or equal to the precision. Trailing zeros are removed from the fractional part of the result; a decimal point appears only if it is followed by at least one digit.
  aA
  The double argument is rounded and converted to hexadecimal notation in the style [-]0xh.hhhp[±]d, where the number of digits after the hexadecimal-point character is equal to the precision specification. If the precision is missing, it is taken as enough to represent the floating-point number exactly, and no rounding occurs. If the precision is zero, no hexadecimal-point character appears. The p is a literal character 'p', and the exponent consists of a positive or negative sign followed by a decimal number representing an exponent of 2. The A conversion uses the prefix "0X" (rather than "0x"), the letters "ABCDEF" (rather than "abcdef") to represent the hex digits, and the letter 'P' (rather than 'p') to separate the mantissa and exponent.

  Note that there may be multiple valid ways to represent floating-point numbers in this hexadecimal format. For example, 0x3.24p+0, 0x6.48p-1 and 0xc.9p-2 are all equivalent. The format chosen depends on the internal representation of the number, but the implementation guarantees that the length of the mantissa will be minimized. Zeroes are always represented with a mantissa of 0 (preceded by a '-' if appropriate) and an exponent of +0.

  C
  Treated as c with the l (ell) modifier.
  c
  The int argument is converted to an unsigned char, and the resulting character is written.

  If the l (ell) modifier is used, the wint_t argument shall be converted to a wchar_t, and the (potentially multi-byte) sequence representing the single wide character is written, including any shift sequences. If a shift sequence is used, the shift state is also restored to the original state after the character.

  S
  Treated as s with the l (ell) modifier.
  s
  The char * argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating NUL character; if a precision is specified, no more than the number specified are written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating NUL character.

  If the l (ell) modifier is used, the wchar_t * argument is expected to be a pointer to an array of wide characters (pointer to a wide string). For each wide character in the string, the (potentially multi-byte) sequence representing the wide character is written, including any shift sequences. If any shift sequence is used, the shift state is also restored to the original state after the string. Wide characters from the array are written up to (but not including) a terminating wide NUL character; if a precision is specified, no more than the number of bytes specified are written (including shift sequences). Partial characters are never written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the number of bytes required to render the multibyte representation of the string, the array must contain a terminating wide NUL character.

  p
  The void * pointer argument is printed in hexadecimal (as if by '%#x' or '%#lx').
  n
  The number of characters written so far is stored into the integer indicated by the int * (or variant) pointer argument. No argument is converted.
  %
  A '%' is written. No argument is converted. The complete conversion specification is '%%'.

  The decimal point character is defined in the program's locale (category LC_NUMERIC)

  In no case does a non-existent or small field width cause truncation of a numeric field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The charater to write. The FILE stream to write to. Output a character to a FILE stream. Returns the character written. If an error occurrs, the value is returned. The putc() function writes the character (converted to an "unsigned char") to the output stream pointed to by .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The charater to write. Output a character to a . Returns the character written. If an error occurrs, the value is returned. The putchar() function is identical to () with an output stream of .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Output a line to .

  The fputs function returns 0 on success and on error, and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument not a writable stream.

  fputs may also fail for any of the errors specified for the routines (2).

  The function puts() writes the string , and a terminating newline character, to the stream .
- Method
  2.0.0.0
  4.0.0.0
  System.Int32 `` A realtime signal to send to the current process. Send a realtime signal to the current process. The raise() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error. The raise() function sends the signal to the current process.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` A signal to send to the current process. Send a signal to the current process. The raise() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error. The raise() function sends the signal to the current process.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Generates a random number. To be added. The rand() function computes a sequence of pseudo-random integers in the range of 0 to
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 2147483647 The maximum value returned by (3). The maximum value returned by (3).
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.IntPtr `` `` Pointer to the start of a memory area to reallocate. The new size for the allocated memory. Reallocate a memory block. The realloc() function returns a pointer, possibly identical to , to the allocated memory if successful; otherwise a pointer is returned and returns . The realloc() function always leaves the original buffer intact when an error occurs. The realloc() function changes the size of the previously allocated memory referenced by to bytes. The contents of the memory are unchanged up to the lesser of the new and old sizes. If the new size is larger, the value of the newly allocated portion of the memory is undefined. If the requested memory cannot be allocated, is returned and the memory referenced by is valid and unchanged. If memory can be allocated, the memory referenced by is freed and a pointer to the newly allocated memory is returned. Note that this may be different from the value passed as . If is , the realloc() function behaves identically to () for the specified size.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Remove a directory entry. The remove() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error.

  The remove() function removes the file or directory specified by .

  If specifies a directory, remove() is the equivalent of (). Otherwise, it is the equivalent of ().

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The old path name. The new path name. Rename oldpath to newpath. The rename() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error.

  The rename() system call causes the link named to be renamed as . If exists, it is first removed. Both and must be of the same type (that is, both directories or both non-directories), and must reside on the same file system.

  The rename() system call guarantees that if already exists, an instance of will always exist, even if the system should crash in the middle of the operation.

  If the final component of is a symbolic link, the symbolic link is renamed, not the file or directory to which it points.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` FILE stream to set file position indicator to the beginning of the file. Set the file position indicator of the FILE stream to the beginning of the file. To be added.

  The rewind() function sets the file position indicator for the stream pointed to by to the beginning of the file. It is equivalent to:

  (, 0, )

  except that the error indicator for the stream is also cleared (see (3)).

  Since rewind() does not return a value, an application wishing to detect errors should call (()0), then call rewind(), and if is non-zero, assume an error has occurred.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` `` The FILE stream to set buffering operations on. The buffer to use for buffering. Control FILE stream buffering operations. The setbuf() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error.

  The setbuf function disables FILE stream buffering if is , otherwise full buffering is enabled (and is used as the buffer).

  The setbuf function is an alias for calls to . Except for the lack of a return value, the setbuf function is exactly equivalent to the call:

  (, , ? : , );

  This function requires that refer to at least bytes of memory. This memory must remain valid until the next setbuf, , or call.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The FILE stream to set buffering operations on. The buffer to use for buffering. Control FILE stream buffering operations. The setbuf() function returns the value 0 if successful; otherwise the value -1 is returned and indicates the error.

  The setbuf function disables FILE stream buffering if is , otherwise full buffering is enabled (and is used as the buffer).

  The setbuf function is an alias for calls to . Except for the lack of a return value, the setbuf function is exactly equivalent to the call:

  (, , ? : , );

  This function requires that refer to at least bytes of memory. This memory must remain valid until the next setbuf, , or call.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void `` To be added. Writes errno. To be added.
- Method
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. A specifying what to do when the signal is emitted. Specifies what should happen when a signal is emitted.

  A ; if equal to 0, the call was successful. -1 is returned on failure, and sets to indicate the error.

  Possible errors include:

  Error
  Details

  is invalid.

  This is the safer, restricted form of . While signal(2) permits an arbitrary method to be set as the signal handler, this method permits specifying only the default, ignore, or error handlers.

  If is , then this method is equivalent to signal(, SIG_DFL).

  If is , then this method is equivalent to signal(, SIG_IGN).

  If is , then this method is equivalent to signal(, SIG_ERR).

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. A specifying what to do when the signal is emitted. Specifies what should happen when a signal is emitted.

  A ; if equal to 0, the call was successful. -1 is returned on failure, and sets to indicate the error.

  Possible errors include:

  Error
  Details

  is invalid.

  This is the safer, restricted form of . While signal(2) permits an arbitrary method to be set as the signal handler, this method permits specifying only the default, ignore, or error handlers.

  If is , then this method is equivalent to signal(, SIG_DFL).

  If is , then this method is equivalent to signal(, SIG_IGN).

  If is , then this method is equivalent to signal(, SIG_ERR).

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` `` `` `` The FILE stream to set buffering behavior on. The buffer to use for buffering. The type of buffering to start using with . The size of the buffer . Control FILE stream buffering operations. The setvbuf() function returns 0 on success, or if the request cannot be honored (note that the stream is still functional in this case).

  The three types of buffering available are unbuffered, block buffered, and line buffered. When an output stream is unbuffered, information appears on the destination file or terminal as soon as written; when it is block buffered many characters are saved up and written as a block; when it is line buffered characters are saved up until a new- line is output or input is read from any stream attached to a terminal device (typically ). The function (3) may be used to force the block out early. (See (3).)

  Normally all files are block buffered. When the first I/O operation occurs on a file, (3) is called, and an optimally-sized buffer is obtained. If a stream refers to a terminal (as normally does) it is line buffered. The standard error stream is always unbuffered.

  The setvbuf function may be used to alter the buffering behavior of a stream. The argument must be one of the following three values:

  Value
  Description
  unbuffered
  line buffered
  fully buffered

  The argument may be given as zero to obtain deferred optimal-size buffer allocation as usual. If it is not zero, then except for unbuffered files, the argument should point to a buffer at least bytes long; this buffer will be used instead of the current buffer. If is not , it is the caller's responsibility to (3) this buffer after closing the stream.

  The setvbuf() function may be used at any time, but may have peculiar side effects (such as discarding input or flushing output) if the stream is ''active''. Portable applications should call it only once on any given stream, and before any I/O is performed.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` `` `` `` The FILE stream to set buffering behavior on. The buffer to use for buffering. The type of buffering to start using with . The size of the buffer . Control FILE stream buffering. The setvbuf() function returns 0 on success, or if the request cannot be honored (note that the stream is still functional in this case).

  The three types of buffering available are unbuffered, block buffered, and line buffered. When an output stream is unbuffered, information appears on the destination file or terminal as soon as written; when it is block buffered many characters are saved up and written as a block; when it is line buffered characters are saved up until a new- line is output or input is read from any stream attached to a terminal device (typically ). The function (3) may be used to force the block out early. (See (3).)

  Normally all files are block buffered. When the first I/O operation occurs on a file, (3) is called, and an optimally-sized buffer is obtained. If a stream refers to a terminal (as normally does) it is line buffered. The standard error stream is always unbuffered.

  The setvbuf function may be used to alter the buffering behavior of a stream. The argument must be one of the following three values:

  Value
  Description
  unbuffered
  line buffered
  fully buffered

  The argument may be given as zero to obtain deferred optimal-size buffer allocation as usual. If it is not zero, then except for unbuffered files, the argument should point to a buffer at least bytes long; this buffer will be used instead of the current buffer. If is not , it is the caller's responsibility to (3) this buffer after closing the stream.

  The setvbuf() function may be used at any time, but may have peculiar side effects (such as discarding input or flushing output) if the stream is ''active''. Portable applications should call it only once on any given stream, and before any I/O is performed.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  Mono.Unix.Native.SignalHandler Default signal behavior. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  Mono.Unix.Native.SignalHandler Error signal. This value is returned by (3) when an error occurs.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  Mono.Unix.Native.SignalHandler Ignore the signal. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Obsolete("This is not safe; use Mono.Unix.UnixSignal for signal delivery or SetSignalAction()")
  Mono.Unix.Native.SignalHandler `` `` The signal to handle. The handler to invoke when the process receives a signal. Register a handler for a given signal.

  The previous value of the signal handler, or on error and indicates the error.

  The following errors are specified:

  Error
  Details
  The argument is not a valid signal number.
  An attempt is made to ignore or supply a handler for or .

  This method should not be used in new code, as the Platform Invoke mechanism is not signal-safe, yet the Platform Invoke mechanism is required for unmanaged code to invoke managed code.

  New code should use the replacement method or the type .

  This signal() facility is a simplified interface to the more general (2) facility.

  Signals allow the manipulation of a process from outside its domain as well as allowing the process to manipulate itself or copies of itself (children). There are two general types of signals: those that cause termination of a process and those that do not. Signals which cause termination of a program might result from an irrecoverable error or might be the result of a user at a terminal typing the 'interrupt' character. Signals are used when a process is stopped because it wishes to access its control terminal while in the background (see tty(4)). Signals are optionally generated when a process resumes after being stopped, when the status of child processes changes, or when input is ready at the control terminal. Most signals result in the termination of the process receiving them if no action is taken; some signals instead cause the process receiving them to be stopped, or are simply discarded if the process has not requested otherwise. Except for the and signals, the signal() function allows for a signal to be caught, to be ignored, or to generate an interrupt.

  The argument specifies which signal was received. The procedure allows a user to choose the action upon receipt of a signal. To set the default action of the signal to occur as listed above, should be . A resets the default action. To ignore the signal func should be . This will cause subsequent instances of the signal to be ignored and pending instances to be discarded. If is not used, further occurrences of the signal are automatically blocked and is called.

  The handled signal is unblocked when the function returns and the process continues from where it left off when the signal occurred.

  For some system calls, if a signal is caught while the call is executing and the call is prematurely terminated, the call is automatically restarted. (The handler is installed using the SA_RESTART flag with (2).) The affected system calls include (2), (2), (2), (2), (2) and (2) on a communications channel or a low speed device and during a (2) or (2). However, calls that have already committed are not restarted, but instead return a partial success (for example, a short read count). These semantics could be changed with (3)

  When a process which has installed signal handlers forks, the child process inherits the signals. All caught signals may be reset to their default action by a call to the (2) function; ignored signals remain ignored.

  If a process explicitly specifies as the action for the signal , the system will not create zombie processes when children of the calling process exit. As a consequence, the system will discard the exit status from the child processes. If the calling process subsequently issues a call to (2) or equivalent, it will block until all of the calling process's children terminate, and then return a value of -1 with returning .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The buffer to print the message into. The message to print. Print a string into a buffer. Returns the number of characters printed or the number of characters that would have been printed if the were unlimited (again, not including the final '\0'). The snprintf function will fill at most characters of the input buffer with the string .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use snprintf (StringBuilder, string) instead.")
  System.Int32 `` `` `System.ParamArray` The buffer to print the message into. The message format string. Arguments for the message format string. Print a string into a buffer. Returns the number of characters printed or the number of characters that would have been printed if the were unlimited (again, not including the final '\0').

  The snprintf() family of functions produces output according to a format as described below. snprintf() writes output to the given output .

  These functions write the output under the control of a string that specifies how subsequent arguments (or arguments accessed via the variable-length argument facilities of stdarg(3)) are converted for output.

  The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the % character. The arguments must correspond properly (after type promotion) with the conversion specifier. After the %, the following appear in sequence:

  An optional field, consisting of a decimal digit string followed by a $, specifying the next argument to access. If this field is not provided, the argument following the last argument accessed will be used. Arguments are numbered starting at 1. If unaccessed arguments in the format string are interspersed with ones that are accessed the results will be indeterminate.
  Zero or more of the following flags:

  Flag
  Description
  '#'
  The value should be converted to an "alternate form". For c, d, i, n, p, s, and u conversions, this option has no effect. For o conversions, the precision of the number is increased to force the first character of the output string to a zero (except if a zero value is printed with an explicit precision of zero). For x and X conversions, a non-zero result has the string '0x' (or '0X' for X conversions) prepended to it. For a, A, e, E, f, F, g, and G conversions, the result will always contain a decimal point, even if no digits follow it (normally, a decimal point appears in the results of those conversions only if a digit follows). For g and G conversions, trailing zeros are not removed from the result as they would otherwise be.
  '0' (zero)
  Zero padding. For all conversions except n, the converted value is padded on the left with zeros rather than blanks. If a precision is given with a numeric conversion (d, i, o, u, i, x, and X), the 0 flag is ignored.
  '-'
  A negative field width flag; the converted value is to be left adjusted on the field boundary. Except for n conversions, the converted value is padded on the right with blanks, rather than on the left with blanks or zeros. A - overrides a 0 if both are given.
  '' (space)
  A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).
  '+'
  A sign must always be placed before a number produced by a signed conversion. A + overrides a space if both are used.
  '''
  Decimal conversions (d, u, or i) or the integral portion of a floating point conversion (f or F) should be grouped and separated by thousands using the non-monetary separator returned by (3).
  An optional decimal digit string specifying a minimum field width. If the converted value has fewer characters than the field width, it will be padded with spaces on the left (or right, if the left-adjustment flag has been given) to fill out the field width.
  An optional precision, in the form of a period . followed by an optional digit string. If the digit string is omitted, the precision is taken as zero. This gives the minimum number of digits to appear for d, i, o, u, x, and X conversions, the number of digits to appear after the decimal-point for a, A, e, E, f, and F conversions, the maximum number of significant digits for g and G conversions, or the maximum number of characters to be printed from a string for s conversions.
  An optional length modifier, that specifies the size of the argument. The following length modifiers are valid for the d, i, n, o, u, x, or X conversion:

  Modifier
  d, i o, u, x, X n
  hh
  signed char unsigned char signed char *
  h
  short unsigned short short *
  l (ell)
  long unsigned long unsigned long *
  ll (ell ell)
  long long unsigned long long long long *
  j
  intmax_t uintmax_t intmax_t *
  t
  ptrdiff_t(see note)ptrdiff_t *
  z
  (see note)size_t(see note)
  q(deprecated)
  quad_t u_quad_t quad_t *

  the t modifier, when applied to a o, u, x, or X conversion, indicates that the argument is of an unsigned type equivalent in size to a ptrdiff_t. The z modifier, when applied to a d or i conversion, indicates that the argument is of a signed type equivalent in size to a size_t. Similarly, when applied to an n conversion, it indicates that the argument is a pointer to a signed type equivalent in size to a size_t.

  The following length modifier is valid for the a, A, e, E, f, F, g, or G conversion:

  Modifier
  a, A, e, E, f, F, g, G
  L
  long double

  The following length modifier is valid for the c or s conversion:

  Modifier
  c s
  l (ell)
  wint_t wchar_t *
  A character that specifies the type of conversion to be applied.

  A field width or precision, or both, may be indicated by an asterisk '*' or an asterisk followed by one or more decimal digits and a '$' instead of a digit string. In this case, an int argument supplies the field width or precision. A negative field width is treated as a left adjustment flag followed by a positive field width; a negative precision is treated as though it were missing. If a single format directive mixes positional (nn$) and non-positional arguments, the results are undefined

  The conversion specifiers and their meanings are:

  Specifier
  Meaning
  diouxX
  The int (or appropriate variant) argument is converted to signed decimal (d and i), unsigned octal (o), unsigned decimal (u), or unsigned hexadecimal (x and X) notation. The letters "abcdef" are used for x conversions; the letters "ABCDEF" are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros.
  DOU
  The long int argument is converted to signed decimal, unsigned octal, or unsigned decimal, as if the format had been ld, lo, or lu respectively. These conversion characters are deprecated, and will eventually disappear.
  eE
  The double argument is rounded and converted in the style [-]d.ddde±dd where there is one digit before the decimal-point character and the number of digits after it is equal to the precision; if the precision is missing, it is taken as 6; if the precision is zero, no decimal-point character appears. An E conversion uses the letter 'E' (rather than 'e') to introduce the exponent. The exponent always contains at least two digits; if the value is zero, the exponent is 00.

  For a, A, e, E, f, F, g, and G conversions, positive and negative infinity are represented as inf and -inf respectively when using the lowercase conversion character, and INF and -INF respectively when using the uppercase conversion character. Similarly, NaN is represented as nan when using the lowercase conversion, and NAN when using the uppercase conversion.

  fF
  The double argument is rounded and converted to decimal notation in the style [-]ddd.ddd, where the number of digits after the decimal-point character is equal to the precision specification. If the precision is missing, it is taken as 6; if the precision is explicitly zero, no decimal-point character appears. If a decimal point appears, at least one digit appears before it.
  gG
  The double argument is converted in style f or e (or F or E for G conversions). The precision specifies the number of significant digits. If the precision is missing, 6 digits are given; if the precision is zero, it is treated as 1. Style e is used if the exponent from its conversion is less than -4 or greater than or equal to the precision. Trailing zeros are removed from the fractional part of the result; a decimal point appears only if it is followed by at least one digit.
  aA
  The double argument is rounded and converted to hexadecimal notation in the style [-]0xh.hhhp[±]d, where the number of digits after the hexadecimal-point character is equal to the precision specification. If the precision is missing, it is taken as enough to represent the floating-point number exactly, and no rounding occurs. If the precision is zero, no hexadecimal-point character appears. The p is a literal character 'p', and the exponent consists of a positive or negative sign followed by a decimal number representing an exponent of 2. The A conversion uses the prefix "0X" (rather than "0x"), the letters "ABCDEF" (rather than "abcdef") to represent the hex digits, and the letter 'P' (rather than 'p') to separate the mantissa and exponent.

  Note that there may be multiple valid ways to represent floating-point numbers in this hexadecimal format. For example, 0x3.24p+0, 0x6.48p-1 and 0xc.9p-2 are all equivalent. The format chosen depends on the internal representation of the number, but the implementation guarantees that the length of the mantissa will be minimized. Zeroes are always represented with a mantissa of 0 (preceded by a '-' if appropriate) and an exponent of +0.

  C
  Treated as c with the l (ell) modifier.
  c
  The int argument is converted to an unsigned char, and the resulting character is written.

  If the l (ell) modifier is used, the wint_t argument shall be converted to a wchar_t, and the (potentially multi-byte) sequence representing the single wide character is written, including any shift sequences. If a shift sequence is used, the shift state is also restored to the original state after the character.

  S
  Treated as s with the l (ell) modifier.
  s
  The char * argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating NUL character; if a precision is specified, no more than the number specified are written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating NUL character.

  If the l (ell) modifier is used, the wchar_t * argument is expected to be a pointer to an array of wide characters (pointer to a wide string). For each wide character in the string, the (potentially multi-byte) sequence representing the wide character is written, including any shift sequences. If any shift sequence is used, the shift state is also restored to the original state after the string. Wide characters from the array are written up to (but not including) a terminating wide NUL character; if a precision is specified, no more than the number of bytes specified are written (including shift sequences). Partial characters are never written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the number of bytes required to render the multibyte representation of the string, the array must contain a terminating wide NUL character.

  p
  The void * pointer argument is printed in hexadecimal (as if by '%#x' or '%#lx').
  n
  The number of characters written so far is stored into the integer indicated by the int * (or variant) pointer argument. No argument is converted.
  %
  A '%' is written. No argument is converted. The complete conversion specification is '%%'.

  The decimal point character is defined in the program's locale (category LC_NUMERIC)

  In no case does a non-existent or small field width cause truncation of a numeric field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` `` `` The buffer to print the message into. The size of the buffer. The message to print. Print a string into a buffer. Returns the number of characters printed or the number of characters that would have been printed if the were unlimited (again, not including the final '\0'). The snprintf function will fill at most characters of the input buffer with the string .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use snprintf (StringBuilder, string) instead.")
  System.Int32 `` `` `` `System.ParamArray` The buffer to print the message into. The size of the buffer. The message format string. Arguments for the message format string. Print a string into a buffer. Returns the number of characters printed or the number of characters that would have been printed if the were unlimited (again, not including the final '\0').

  The snprintf() family of functions produces output according to a format as described below. snprintf() writes output to the given output .

  These functions write the output under the control of a string that specifies how subsequent arguments (or arguments accessed via the variable-length argument facilities of stdarg(3)) are converted for output.

  The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the % character. The arguments must correspond properly (after type promotion) with the conversion specifier. After the %, the following appear in sequence:

  An optional field, consisting of a decimal digit string followed by a $, specifying the next argument to access. If this field is not provided, the argument following the last argument accessed will be used. Arguments are numbered starting at 1. If unaccessed arguments in the format string are interspersed with ones that are accessed the results will be indeterminate.
  Zero or more of the following flags:

  Flag
  Description
  '#'
  The value should be converted to an "alternate form". For c, d, i, n, p, s, and u conversions, this option has no effect. For o conversions, the precision of the number is increased to force the first character of the output string to a zero (except if a zero value is printed with an explicit precision of zero). For x and X conversions, a non-zero result has the string '0x' (or '0X' for X conversions) prepended to it. For a, A, e, E, f, F, g, and G conversions, the result will always contain a decimal point, even if no digits follow it (normally, a decimal point appears in the results of those conversions only if a digit follows). For g and G conversions, trailing zeros are not removed from the result as they would otherwise be.
  '0' (zero)
  Zero padding. For all conversions except n, the converted value is padded on the left with zeros rather than blanks. If a precision is given with a numeric conversion (d, i, o, u, i, x, and X), the 0 flag is ignored.
  '-'
  A negative field width flag; the converted value is to be left adjusted on the field boundary. Except for n conversions, the converted value is padded on the right with blanks, rather than on the left with blanks or zeros. A - overrides a 0 if both are given.
  '' (space)
  A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).
  '+'
  A sign must always be placed before a number produced by a signed conversion. A + overrides a space if both are used.
  '''
  Decimal conversions (d, u, or i) or the integral portion of a floating point conversion (f or F) should be grouped and separated by thousands using the non-monetary separator returned by (3).
  An optional decimal digit string specifying a minimum field width. If the converted value has fewer characters than the field width, it will be padded with spaces on the left (or right, if the left-adjustment flag has been given) to fill out the field width.
  An optional precision, in the form of a period . followed by an optional digit string. If the digit string is omitted, the precision is taken as zero. This gives the minimum number of digits to appear for d, i, o, u, x, and X conversions, the number of digits to appear after the decimal-point for a, A, e, E, f, and F conversions, the maximum number of significant digits for g and G conversions, or the maximum number of characters to be printed from a string for s conversions.
  An optional length modifier, that specifies the size of the argument. The following length modifiers are valid for the d, i, n, o, u, x, or X conversion:

  Modifier
  d, i o, u, x, X n
  hh
  signed char unsigned char signed char *
  h
  short unsigned short short *
  l (ell)
  long unsigned long unsigned long *
  ll (ell ell)
  long long unsigned long long long long *
  j
  intmax_t uintmax_t intmax_t *
  t
  ptrdiff_t(see note)ptrdiff_t *
  z
  (see note)size_t(see note)
  q(deprecated)
  quad_t u_quad_t quad_t *

  the t modifier, when applied to a o, u, x, or X conversion, indicates that the argument is of an unsigned type equivalent in size to a ptrdiff_t. The z modifier, when applied to a d or i conversion, indicates that the argument is of a signed type equivalent in size to a size_t. Similarly, when applied to an n conversion, it indicates that the argument is a pointer to a signed type equivalent in size to a size_t.

  The following length modifier is valid for the a, A, e, E, f, F, g, or G conversion:

  Modifier
  a, A, e, E, f, F, g, G
  L
  long double

  The following length modifier is valid for the c or s conversion:

  Modifier
  c s
  l (ell)
  wint_t wchar_t *
  A character that specifies the type of conversion to be applied.

  A field width or precision, or both, may be indicated by an asterisk '*' or an asterisk followed by one or more decimal digits and a '$' instead of a digit string. In this case, an int argument supplies the field width or precision. A negative field width is treated as a left adjustment flag followed by a positive field width; a negative precision is treated as though it were missing. If a single format directive mixes positional (nn$) and non-positional arguments, the results are undefined

  The conversion specifiers and their meanings are:

  Specifier
  Meaning
  diouxX
  The int (or appropriate variant) argument is converted to signed decimal (d and i), unsigned octal (o), unsigned decimal (u), or unsigned hexadecimal (x and X) notation. The letters "abcdef" are used for x conversions; the letters "ABCDEF" are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros.
  DOU
  The long int argument is converted to signed decimal, unsigned octal, or unsigned decimal, as if the format had been ld, lo, or lu respectively. These conversion characters are deprecated, and will eventually disappear.
  eE
  The double argument is rounded and converted in the style [-]d.ddde±dd where there is one digit before the decimal-point character and the number of digits after it is equal to the precision; if the precision is missing, it is taken as 6; if the precision is zero, no decimal-point character appears. An E conversion uses the letter 'E' (rather than 'e') to introduce the exponent. The exponent always contains at least two digits; if the value is zero, the exponent is 00.

  For a, A, e, E, f, F, g, and G conversions, positive and negative infinity are represented as inf and -inf respectively when using the lowercase conversion character, and INF and -INF respectively when using the uppercase conversion character. Similarly, NaN is represented as nan when using the lowercase conversion, and NAN when using the uppercase conversion.

  fF
  The double argument is rounded and converted to decimal notation in the style [-]ddd.ddd, where the number of digits after the decimal-point character is equal to the precision specification. If the precision is missing, it is taken as 6; if the precision is explicitly zero, no decimal-point character appears. If a decimal point appears, at least one digit appears before it.
  gG
  The double argument is converted in style f or e (or F or E for G conversions). The precision specifies the number of significant digits. If the precision is missing, 6 digits are given; if the precision is zero, it is treated as 1. Style e is used if the exponent from its conversion is less than -4 or greater than or equal to the precision. Trailing zeros are removed from the fractional part of the result; a decimal point appears only if it is followed by at least one digit.
  aA
  The double argument is rounded and converted to hexadecimal notation in the style [-]0xh.hhhp[±]d, where the number of digits after the hexadecimal-point character is equal to the precision specification. If the precision is missing, it is taken as enough to represent the floating-point number exactly, and no rounding occurs. If the precision is zero, no hexadecimal-point character appears. The p is a literal character 'p', and the exponent consists of a positive or negative sign followed by a decimal number representing an exponent of 2. The A conversion uses the prefix "0X" (rather than "0x"), the letters "ABCDEF" (rather than "abcdef") to represent the hex digits, and the letter 'P' (rather than 'p') to separate the mantissa and exponent.

  Note that there may be multiple valid ways to represent floating-point numbers in this hexadecimal format. For example, 0x3.24p+0, 0x6.48p-1 and 0xc.9p-2 are all equivalent. The format chosen depends on the internal representation of the number, but the implementation guarantees that the length of the mantissa will be minimized. Zeroes are always represented with a mantissa of 0 (preceded by a '-' if appropriate) and an exponent of +0.

  C
  Treated as c with the l (ell) modifier.
  c
  The int argument is converted to an unsigned char, and the resulting character is written.

  If the l (ell) modifier is used, the wint_t argument shall be converted to a wchar_t, and the (potentially multi-byte) sequence representing the single wide character is written, including any shift sequences. If a shift sequence is used, the shift state is also restored to the original state after the character.

  S
  Treated as s with the l (ell) modifier.
  s
  The char * argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating NUL character; if a precision is specified, no more than the number specified are written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating NUL character.

  If the l (ell) modifier is used, the wchar_t * argument is expected to be a pointer to an array of wide characters (pointer to a wide string). For each wide character in the string, the (potentially multi-byte) sequence representing the wide character is written, including any shift sequences. If any shift sequence is used, the shift state is also restored to the original state after the string. Wide characters from the array are written up to (but not including) a terminating wide NUL character; if a precision is specified, no more than the number of bytes specified are written (including shift sequences). Partial characters are never written. If a precision is given, no null character need be present; if the precision is not specified, or is greater than the number of bytes required to render the multibyte representation of the string, the array must contain a terminating wide NUL character.

  p
  The void * pointer argument is printed in hexadecimal (as if by '%#x' or '%#lx').
  n
  The number of characters written so far is stored into the integer indicated by the int * (or variant) pointer argument. No argument is converted.
  %
  A '%' is written. No argument is converted. The complete conversion specification is '%%'.

  The decimal point character is defined in the program's locale (category LC_NUMERIC)

  In no case does a non-existent or small field width cause truncation of a numeric field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Void `` The value to seed the random number generator with. Initialize the random number generator.

  The srand() function sets its argument as the seed for a new sequence of pseudo-random numbers to be returned by (). These sequences are repeatable by calling srand() with the same seed value.

  If no value is provided, the functions are automatically seeded with a value of 1.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr Standard error FILE stream. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr Standard input FILE stream. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr Standard output FILE stream. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.String `` Error number to get a message for. Get error message string for 'errnum'. A string describing .

  The strerror() function accepts an error number argument errnum and returns a pointer to the corresponding message string.

  If the error number is not recognized, these functions return an error message string containing "Unknown error: " followed by the error number in decimal.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.UInt64 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` The command to execute. Pass a command to the shell.

  If is , system will return a non-zero value if the command interpreter sh(1) is available, and zero if it is not.

  Otherwise, the system function returns the exit status of the shell as returned by (2), or -1 if an error occurred when invoking (2) or (2). A return value of 127 means the execution of the shell failed.

  The system() function hands the argument to the command interpreter sh(1). The calling process waits for the shell to finish executing the command, ignoring and , and blocking .
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 238328 Maximum number of times (3) will return different strings. If (3) is called more than TMP_MAX times, the behavior is implementation defined.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr Create a temporary file. The tmpfile() function returns a pointer to an open file stream on success, and on error.

  The tmpfile() function returns a pointer to a stream associated with a file descriptor returned by the routine (3). The created file is unlinked before tmpfile() returns, causing the file to be automatically deleted when the last reference to it is closed. The file is opened with the access value 'w+'. The file is created in the directory determined by the environment variable TMPDIR if set. The default location if TMPDIR is not set is /tmp.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Syscall.mkstemp() should be preferred.")
  System.String Generate a temporary file name. Returns a file name on success, and on error. The tmpnam() function returns a pointer to a file name, in the /tmp directory, which did not reference an existing file at some indeterminate point in the past.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Syscall.mkstemp() should be preferred.")
  System.String `` Buffer to store the temporary filename into Generate a temporary file name. Returns a file name on success, and on error.

  The tmpnam() function returns a pointer to a file name, in the /tmp directory, which did not reference an existing file at some indeterminate point in the past. If the argument is not , the file name is copied into the buffer it references.

  The buffer referenced by is expected to be at least bytes in length.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The character to unget. The FILE stream to unget on. Un-get character from input FILE stream. The ungetc() function returns the character pushed-back after the conversion, or if the operation fails. If the value of the argument character equals , the operation will fail and the stream will remain unchanged.

  The ungetc() function pushes the character (converted to an unsigned char) back onto the input stream pointed to by . The pushed-back characters will be returned by subsequent reads on the stream (in reverse order). A successful intervening call, using the same stream, to one of the file positioning functions ((3), (3), or (3)) will discard the pushed back characters.

  One character of push-back is guaranteed, but as long as there is sufficient memory, an effectively infinite amount of pushback is allowed.

  If a character is successfully pushed-back, the end-of-file indicator for the stream is cleared. The file-position indicator is decremented by each successful call to ungetc(); if its value was 0 before a call, its value is unspecified after the call.