Std.C

import Std.C

Source


Types


String

type String =
    ptr: Ptr Char

A C string is a pointer to a null-terminated character array. This is meant to be used qualified as C.String

source


String.new

String.new (s: Std.Prelude.String): String

Copy a prelude string, append a ‘\0’, and return it as a new C.String

source


VoidPtr

type VoidPtr = Ptr U8

A convenience type for translating C APIs

source


File

type File =
    f: Ptr Unit

source


FilePos

type FilePos =
    f: Ptr Unit

source


Clock

type Clock =
    sec: I64
    nsec: I64

source


Functions


puts

puts: fn String -> I32 can Fs

source


putchar

putchar: fn Char -> Unit can Fs

source


getchar

getchar: fn Unit -> I32 can Fs

source


exit

exit: fn I32 -> Never

source


system

system: fn String -> I32 can IO

source


strlen

strlen: fn String -> Usz

source


malloc

malloc (size: Usz): Ptr a

source


calloc

calloc (items: Usz) (size: Usz): Ptr a

source


realloc

realloc (ptr: Ptr a) (size: Usz): Ptr a

source


free

free (ptr: Ptr a): Unit

source


memcpy

memcpy (dest: Ptr a) (src: Ptr b) (count: Usz): Ptr a

source


memcmp

memcmp (lhs: Ptr a) (rhs: Ptr b) (size: Usz): I32

source


fopen

fopen: fn String String -> File can Fs

source


fclose

fclose: fn File -> Unit can Fs

source


fputs

fputs: fn String File -> I32 can Fs

source


fputc

fputc: fn I32 File -> I32 can Fs

source


fwrite

fwrite: fn VoidPtr Usz Usz File -> Usz can Fs

source


fgetc

fgetc: fn File -> I32 can Fs

source


fgets

fgets: fn String I32 File -> String can Fs

source


ungetc

ungetc: fn I32 File -> I32 can Fs

source


fgetpos

fgetpos: fn File FilePos -> Unit can Fs

source


ftell

ftell: fn File -> I32 can Fs

source


fsetpos

fsetpos: fn File FilePos -> Unit can Fs

source


fseek

fseek: fn File I32 I32 -> I32 can Fs

source


feof

feof: fn File -> I32 can Fs

source


ferror

ferror: fn File -> I32 can Fs

source


clock_gettime

clock_gettime: fn I32 (Ptr Clock) -> I32 can Fs

source


nanosleep

nanosleep: fn (Ptr Clock) (Ptr Clock) -> I32 can Fs

source


Implicits


Show Implicits

copy_cstring

impl copy_cstring: Copy String

source


copy_file

impl copy_file: Copy File

source