# C Standard Library

`malloc`(size::Integer) → Ptr{Void}

  Call `malloc` from the C standard library.

`calloc`(num::Integer, size::Integer) → Ptr{Void}

  Call `calloc` from the C standard library.

`realloc`(addr::Ptr, size::Integer) → Ptr{Void}

  Call `realloc` from the C standard library.

  See warning in the documentation for `free` regarding only using this on memory originally obtained from `malloc`.

`free`(addr::Ptr)

  Call `free` from the C standard library. Only use this on memory obtained from `malloc`, not on pointers retrieved from other C libraries. `Ptr` objects obtained from C libraries should be freed by the free functions defined in that library, to avoid assertion failures if multiple `libc` libraries exist on the system.

`errno`([code])

  Get the value of the C library’s `errno`. If an argument is specified, it is used to set the value of `errno`.

  The value of `errno` is only valid immediately after a `ccall` to a C library routine that sets it. Specifically, you cannot call `errno` at the next prompt in a REPL, because lots of code is executed between prompts.

`strerror`(n=errno())

  Convert a system call error code to a descriptive string

`GetLastError`()

  Call the Win32 `GetLastError` function [only available on Windows].

`FormatMessage`(n=GetLastError())

  Convert a Win32 system call error code to a descriptive string [only available on Windows].

`time`(t::TmStruct)

  Converts a `TmStruct` struct to a number of seconds since the epoch.

`strftime`([format, ]time)

  Convert time, given as a number of seconds since the epoch or a `TmStruct`, to a formatted string using the given format. Supported formats are the same as those in the standard C library.

`strptime`([format, ]timestr)

  Parse a formatted time string into a `TmStruct` giving the seconds, minute, hour, date, etc. Supported formats are the same as those in the standard C library. On some platforms, timezones will not be parsed correctly. If the result of this function will be passed to `time` to convert it to seconds since the epoch, the `isdst` field should be filled in manually. Setting it to `-1` will tell the C library to use the current system settings to determine the timezone.

`TmStruct`([seconds])

  Convert a number of seconds since the epoch to broken-down format, with fields `sec`, `min`, `hour`, `mday`, `month`, `year`, `wday`, `yday`, and `isdst`.

`flush_cstdio`()

  Flushes the C `stdout` and `stderr` streams (which may have been written to by external C code).