package core:os
Overview
Cross-platform OS interactions like file I/O.
Index
Types (29)
Constants (236)
- ADDR_NO_RANDOMIZE
- AF_BLUETOOTH
- AF_INET
- AF_INET6
- AF_LOCAL
- AF_PACKET
- AF_UNIX
- AF_UNSPEC
- ARCH
- AT_FDCWD
- AT_REMOVEDIR
- AT_SYMLINK_NOFOLLOW
- EACCES
- EADDRINUSE
- EADDRNOTAVAIL
- EADV
- EAFNOSUPPORT
- EAGAIN
- EALREADY
- EBADE
- EBADF
- EBADFD
- EBADMSG
- EBADR
- EBADRQC
- EBADSLT
- EBFONT
- ECANCELED
- ECHRNG
- ECOMM
- ECONNABORTED
- ECONNREFUSED
- ECONNRESET
- EDEADLK
- EDEADLOCK
- EDESTADDRREQ
- EDOTDOT
- EDQUOT
- EEXIST
- EFAULT
- EFBIG
- EHOSTDOWN
- EHOSTUNREACH
- EHWPOISON
- EIDRM
- EILSEQ
- EINPROGRESS
- EINTR
- EINVAL
- EIO
- EISCONN
- EISDIR
- EISNAM
- EKEYEXPIRED
- EKEYREJECTED
- EKEYREVOKED
- EL2HLT
- EL2NSYNC
- EL3HLT
- EL3RST
- ELIBACC
- ELIBBAD
- ELIBEXEC
- ELIBMAX
- ELIBSCN
- ELNRNG
- ELOOP
- EMEDIUMTYPE
- EMFILE
- EMSGSIZE
- EMULTIHOP
- ENAMETOOLONG
- ENAVAIL
- ENDIAN
- ENETDOWN
- ENETRESET
- ENETUNREACH
- ENFILE
- ENOANO
- ENOBUFS
- ENOCSI
- ENODATA
- ENODEV
- ENOENT
- ENOKEY
- ENOLCK
- ENOLINK
- ENOMEDIUM
- ENOMEM
- ENOMSG
- ENONET
- ENOPKG
- ENOPROTOOPT
- ENOSPC
- ENOSR
- ENOSTR
- ENOSYS
- ENOTCONN
- ENOTDIR
- ENOTEMPTY
- ENOTNAM
- ENOTRECOVERABLE
- ENOTSOCK
- ENOTUNIQ
- ENXIO
- EOPNOTSUPP
- EOVERFLOW
- EOWNERDEAD
- EPERM
- EPFNOSUPPORT
- EPIPE
- EPROTO
- EPROTONOSUPPOR
- EPROTOTYPE
- ERANGE
- EREMCHG
- EREMOTE
- EREMOTEIO
- ERESTART
- ERFKILL
- EROFS
- ERROR_EOF
- ERROR_NONE
- ESHUTDOWN
- ESOCKTNOSUPPOR
- ESPIPE
- ESRCH
- ESRMNT
- ESTALE
- ESTRPIPE
- ETIME
- ETIMEDOUT
- ETOOMANYREFS
- ETXTBSY
- EUCLEAN
- EUNATCH
- EUSERS
- EWOULDBLOCK
- EXFULL
- F_GETFL
- F_OK
- F_SETFL
- File_Mode_Char_Device
- File_Mode_Device
- File_Mode_Dir
- File_Mode_Named_Pipe
- File_Mode_Sym_Link
- INADDR_ANY
- INADDR_BROADCAST
- INADDR_DUMMY
- INADDR_NONE
- INVALID_HANDLE
- IPPROTO_ETHERNET
- IPPROTO_ICMP
- IPPROTO_IP
- IPPROTO_IPV6
- IPPROTO_RAW
- IPPROTO_TCP
- IPPROTO_UDP
- MSG_TRUNC
- OS
- O_APPEND
- O_ASYNC
- O_CLOEXEC
- O_CREATE
- O_EXCL
- O_NOCTTY
- O_NONBLOCK
- O_RDONLY
- O_RDWR
- O_SYNC
- O_TRUNC
- O_WRONLY
- RTLD_BINDING_MASK
- RTLD_DEEPBIND
- RTLD_GLOBAL
- RTLD_LAZY
- RTLD_NODELETE
- RTLD_NOLOAD
- RTLD_NOW
- R_OK
- SEEK_CUR
- SEEK_DATA
- SEEK_END
- SEEK_HOLE
- SEEK_MAX
- SEEK_SET
- SHUT_RD
- SHUT_RDWR
- SHUT_WR
- SOCK_DGRAM
- SOCK_PACKET
- SOCK_RAW
- SOCK_RDM
- SOCK_SEQPACKET
- SOCK_STREAM
- SOL_SOCKET
- SO_BROADCAST
- SO_DEBUG
- SO_DONTROUTE
- SO_KEEPALIVE
- SO_LINGER
- SO_OOBINLINE
- SO_RCVBUF
- SO_RCVTIMEO_NEW
- SO_REUSEADDR
- SO_REUSEPORT
- SO_SNDBUF
- SO_SNDTIMEO_NEW
- S_IFBLK
- S_IFCHR
- S_IFDIR
- S_IFIFO
- S_IFLNK
- S_IFMT
- S_IFREG
- S_IFSOCK
- S_IRGRP
- S_IROTH
- S_IRUSR
- S_IRWXG
- S_IRWXO
- S_IRWXU
- S_ISGID
- S_ISUID
- S_ISVTX
- S_IWGRP
- S_IWOTH
- S_IWUSR
- S_IXGRP
- S_IXOTH
- S_IXUSR
- TCP_CORK
- TCP_NODELAY
- W_OK
- X_OK
Procedures (91)
- S_ISBLK
- S_ISCHR
- S_ISDIR
- S_ISFIFO
- S_ISLNK
- S_ISREG
- S_ISSOCK
- absolute_path_from_handle
- absolute_path_from_relative
- accept
- access
- bind
- close
- connect
- current_thread_id
- dlclose
- dlerror
- dlopen
- dlsym
- error_string
- execvp
- exists
- exit
- fcntl
- file_info_delete
- file_info_slice_delete
- file_size
- file_size_from_path
- flush
- fork
- fstat
- get_current_directory
- get_env_alloc
- get_env_buf
- get_last_error
- get_page_size
- is_dir_handle
- is_dir_path
- is_file_handle
- is_file_path
- is_path_separator
- is_platform_error
- last_write_time
- last_write_time_by_name
- listen
- lookup_env_alloc
- lookup_env_buffer
- lstat
- make_directory
- open
- personality
- poll
- ppoll
- print_error
- processor_core_count
- read
- read_at
- read_at_least
- read_dir
- read_entire_file_from_filename
- read_entire_file_from_filename_or_err
- read_entire_file_from_handle
- read_entire_file_from_handle_or_err
- read_full
- read_ptr
- recv
- recvfrom
- remove
- remove_directory
- rename
- replace_environment_placeholders
- seek
- send
- sendto
- set_current_directory
- set_env
- setsockopt
- shutdown
- socket
- stat
- stream_from_handle
- unset_env
- write
- write_at
- write_byte
- write_encoded_rune
- write_entire_file
- write_entire_file_or_err
- write_ptr
- write_rune
- write_string
Procedure Groups (6)
Types
ADDRESS_FAMILY ¶
ADDRESS_FAMILY :: u16
Dirent ¶
NOTE(laleksic, 2021-01-21): Comment and rename these to match OS_Stat above
Errno ¶
Errno :: Error
alias for legacy use
Related Procedures With Parameters
Related Procedures With Returns
- absolute_path_from_handle
- absolute_path_from_relative
- accept
- access
- bind
- close
- connect
- execvp
- fcntl
- file_size
- flush
- fork
- fstat
- get_last_error
- last_write_time
- last_write_time_by_name
- listen
- lookup_env_buffer
- lstat
- make_directory
- open
- personality
- poll
- ppoll
- read
- read_at
- read_at_least
- read_dir
- read_entire_file_from_filename_or_err
- read_entire_file_from_handle_or_err
- read_full
- read_ptr
- recv
- recvfrom
- remove
- remove_directory
- rename
- seek
- send
- sendto
- set_current_directory
- set_env
- setsockopt
- shutdown
- socket
- stat
- unset_env
- write
- write_at
- write_byte
- write_encoded_rune
- write_entire_file_or_err
- write_ptr
- write_rune
- write_string
- lookup_env (procedure groups)
- read_entire_file_or_err (procedure groups)
Related Constants
Error ¶
Error :: union { General_Error, io.Error, runtime.Allocator_Error, linux.Errno, }
Related Procedures With Parameters
Related Procedures With Returns
- absolute_path_from_handle
- absolute_path_from_relative
- accept
- access
- bind
- close
- connect
- execvp
- fcntl
- file_size
- flush
- fork
- fstat
- get_last_error
- last_write_time
- last_write_time_by_name
- listen
- lookup_env_buffer
- lstat
- make_directory
- open
- personality
- poll
- ppoll
- read
- read_at
- read_at_least
- read_dir
- read_entire_file_from_filename_or_err
- read_entire_file_from_handle_or_err
- read_full
- read_ptr
- recv
- recvfrom
- remove
- remove_directory
- rename
- seek
- send
- sendto
- set_current_directory
- set_env
- setsockopt
- shutdown
- socket
- stat
- unset_env
- write
- write_at
- write_byte
- write_encoded_rune
- write_entire_file_or_err
- write_ptr
- write_rune
- write_string
- lookup_env (procedure groups)
- read_entire_file_or_err (procedure groups)
Related Constants
File_Info ¶
File_Info :: struct { fullpath: string, // allocated name: string, // uses `fullpath` as underlying data size: i64, mode: File_Mode, is_dir: bool, creation_time: time.Time, modification_time: time.Time, access_time: time.Time, }
Related Procedures With Parameters
General_Error ¶
General_Error :: enum u32 { None, Exist, Not_Exist, Timeout, Broken_Pipe, Invalid_File, Invalid_Dir, Invalid_Path, Invalid_Callback, Pattern_Has_Separator, File_Is_Pipe, Not_Dir, // Environment variable not found. Env_Var_Not_Found, }
Handle ¶
Handle :: distinct i32
Related Procedures With Parameters
- absolute_path_from_handle
- close
- file_size
- flush
- fstat
- is_dir_handle
- is_file_handle
- last_write_time
- print_error
- read
- read_at
- read_at_least
- read_dir
- read_entire_file_from_handle
- read_entire_file_from_handle_or_err
- read_full
- read_ptr
- seek
- stream_from_handle
- write
- write_at
- write_byte
- write_encoded_rune
- write_ptr
- write_rune
- write_string
- is_dir (procedure groups)
- is_file (procedure groups)
- read_entire_file (procedure groups)
- read_entire_file_or_err (procedure groups)
Related Procedures With Returns
Related Constants
OS_Stat ¶
OS_Stat :: struct { device_id: u64, // ID of device containing file serial: u64, // File serial number nlink: u64, // Number of hard links mode: u32, // Mode of the file uid: u32, // User ID of the file's owner gid: u32, // Group ID of the file's group _: i32, // 32 bits of padding rdev: u64, // Device ID, if device size: i64, // Size of the file, in bytes block_size: i64, // Optimal bllocksize for I/O blocks: i64, // Number of 512-byte blocks allocated last_access: Unix_File_Time, // Time of last access modified: Unix_File_Time, // Time of last modification status_change: Unix_File_Time, // Time of last status change _reserved: [3]i64, }
Platform_Error ¶
Platform_Error :: linux.Errno
Related Constants
- EACCES
- EADDRINUSE
- EADDRNOTAVAIL
- EADV
- EAFNOSUPPORT
- EAGAIN
- EALREADY
- EBADE
- EBADF
- EBADFD
- EBADMSG
- EBADR
- EBADRQC
- EBADSLT
- EBFONT
- ECANCELED
- ECHRNG
- ECOMM
- ECONNABORTED
- ECONNREFUSED
- ECONNRESET
- EDEADLK
- EDEADLOCK
- EDESTADDRREQ
- EDOTDOT
- EDQUOT
- EEXIST
- EFAULT
- EFBIG
- EHOSTDOWN
- EHOSTUNREACH
- EHWPOISON
- EIDRM
- EILSEQ
- EINPROGRESS
- EINTR
- EINVAL
- EIO
- EISCONN
- EISDIR
- EISNAM
- EKEYEXPIRED
- EKEYREJECTED
- EKEYREVOKED
- EL2HLT
- EL2NSYNC
- EL3HLT
- EL3RST
- ELIBACC
- ELIBBAD
- ELIBEXEC
- ELIBMAX
- ELIBSCN
- ELNRNG
- ELOOP
- EMEDIUMTYPE
- EMFILE
- EMSGSIZE
- EMULTIHOP
- ENAMETOOLONG
- ENAVAIL
- ENETDOWN
- ENETRESET
- ENETUNREACH
- ENFILE
- ENOANO
- ENOBUFS
- ENOCSI
- ENODATA
- ENODEV
- ENOENT
- ENOKEY
- ENOLCK
- ENOLINK
- ENOMEDIUM
- ENOMEM
- ENOMSG
- ENONET
- ENOPKG
- ENOPROTOOPT
- ENOSPC
- ENOSR
- ENOSTR
- ENOSYS
- ENOTCONN
- ENOTDIR
- ENOTEMPTY
- ENOTNAM
- ENOTRECOVERABLE
- ENOTSOCK
- ENOTUNIQ
- ENXIO
- EOPNOTSUPP
- EOVERFLOW
- EOWNERDEAD
- EPERM
- EPFNOSUPPORT
- EPIPE
- EPROTO
- EPROTONOSUPPOR
- EPROTOTYPE
- ERANGE
- EREMCHG
- EREMOTE
- EREMOTEIO
- ERESTART
- ERFKILL
- EROFS
- ESHUTDOWN
- ESOCKTNOSUPPOR
- ESPIPE
- ESRCH
- ESRMNT
- ESTALE
- ESTRPIPE
- ETIME
- ETIMEDOUT
- ETOOMANYREFS
- ETXTBSY
- EUCLEAN
- EUNATCH
- EUSERS
- EWOULDBLOCK
- EXFULL
SIOCGIFFLAG ¶
SIOCGIFFLAG :: enum i32 { UP = 0, // Interface is up. BROADCAST = 1, // Broadcast address valid. DEBUG = 2, // Turn on debugging. LOOPBACK = 3, // Is a loopback net. POINT_TO_POINT = 4, // Interface is point-to-point link. NO_TRAILERS = 5, // Avoid use of trailers. RUNNING = 6, // Resources allocated. NOARP = 7, // No address resolution protocol. PROMISC = 8, // Receive all packets. ALL_MULTI = 9, // Receive all multicast packets. Unimplemented. MASTER = 10, // Master of a load balancer. SLAVE = 11, // Slave of a load balancer. MULTICAST = 12, // Supports multicast. PORTSEL = 13, // Can set media type. AUTOMEDIA = 14, // Auto media select active. DYNAMIC = 15, // Dialup device with changing addresses. LOWER_UP = 16, DORMANT = 17, ECHO = 18, }
SIOCGIFFLAGS ¶
SIOCGIFFLAGS :: bit_set[SIOCGIFFLAG; i32]
in6_addr ¶
in6_addr :: struct #packed { s6_addr: [16]u8, }
rtnl_link_stats ¶
rtnl_link_stats :: struct #packed { rx_packets: u32, tx_packets: u32, rx_bytes: u32, tx_bytes: u32, rx_errors: u32, tx_errors: u32, rx_dropped: u32, tx_dropped: u32, multicast: u32, collisions: u32, rx_length_errors: u32, rx_over_errors: u32, rx_crc_errors: u32, rx_frame_errors: u32, rx_fifo_errors: u32, rx_missed_errors: u32, tx_aborted_errors: u32, tx_carrier_errors: u32, tx_fifo_errors: u32, tx_heartbeat_errors: u32, tx_window_errors: u32, rx_compressed: u32, tx_compressed: u32, rx_nohandler: u32, }
Constants
ADDR_NO_RANDOMIZE ¶
ADDR_NO_RANDOMIZE: int : 0x40000
AF_BLUETOOTH ¶
AF_BLUETOOTH: int : 31
AF_INET6 ¶
AF_INET6: int : 10
AF_LOCAL ¶
AF_LOCAL: int : AF_UNIX
AF_PACKET ¶
AF_PACKET: int : 17
AF_UNSPEC ¶
AF_UNSPEC: int : 0
ARCH ¶
ARCH: .Odin_Arch_Type : ODIN_ARCH
AT_REMOVEDIR ¶
AT_REMOVEDIR :: uintptr(0x200)
AT_SYMLINK_NOFOLLOW ¶
AT_SYMLINK_NOFOLLOW :: uintptr(0x100)
EADDRNOTAVAIL ¶
EADDRNOTAVAIL: linux.Errno : Platform_Error.EADDRNOTAVAIL
Cannot assign requested address
EAFNOSUPPORT ¶
EAFNOSUPPORT: linux.Errno : Platform_Error.EAFNOSUPPORT
Address family not supported by protocol
ECONNABORTED ¶
ECONNABORTED: linux.Errno : Platform_Error.ECONNABORTED
Software caused connection abort
EDEADLOCK ¶
EDEADLOCK: linux.Errno : Platform_Error.EDEADLOCK
ELIBMAX ¶
ELIBMAX: linux.Errno : Platform_Error.ELIBMAX
Attempting to link in too many shared libraries
ENDIAN ¶
ENDIAN: .Odin_Endian_Type : ODIN_ENDIAN
ENETRESET ¶
ENETRESET: linux.Errno : Platform_Error.ENETRESET
Network dropped connection because of reset
ENOTRECOVERABLE ¶
ENOTRECOVERABLE: linux.Errno : Platform_Error.ENOTRECOVERABLE
State not recoverable
EOPNOTSUPP ¶
EOPNOTSUPP: linux.Errno : Platform_Error.EOPNOTSUPP
Operation not supported on transport endpoint
EPFNOSUPPORT ¶
EPFNOSUPPORT: linux.Errno : Platform_Error.EPFNOSUPPORT
Protocol family not supported
EPROTONOSUPPOR ¶
EPROTONOSUPPOR: linux.Errno : Platform_Error.EPROTONOSUPPORT
Protocol not supported
ERESTART ¶
ERESTART: linux.Errno : Platform_Error.ERESTART
Interrupted system call should be restarted
ERROR_EOF ¶
ERROR_EOF: io.Error : io.Error.EOF
ERROR_NONE ¶
ERROR_NONE :: Error{}
ESHUTDOWN ¶
ESHUTDOWN: linux.Errno : Platform_Error.ESHUTDOWN
Cannot send after transport endpoint shutdown
ESOCKTNOSUPPOR ¶
ESOCKTNOSUPPOR: linux.Errno : Platform_Error.ESOCKTNOSUPPORT
Socket type not supported
ETOOMANYREFS ¶
ETOOMANYREFS: linux.Errno : Platform_Error.ETOOMANYREFS
Too many references: cannot splice
F_GETFL ¶
F_GETFL: int : 3
TODO: add remaining fcntl commands reference: https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/fcntl.h
File_Mode_Char_Device ¶
File_Mode_Char_Device :: File_Mode(1 << 19)
File_Mode_Device ¶
File_Mode_Device :: File_Mode(1 << 18)
File_Mode_Dir ¶
File_Mode_Dir :: File_Mode(1 << 16)
File_Mode_Named_Pipe ¶
File_Mode_Named_Pipe :: File_Mode(1 << 17)
File_Mode_Sym_Link ¶
File_Mode_Sym_Link :: File_Mode(1 << 20)
INADDR_ANY ¶
INADDR_ANY: u64 : 0
INADDR_BROADCAST ¶
INADDR_BROADCAST: u64 : 0xffffffff
INADDR_DUMMY ¶
INADDR_DUMMY: u64 : 0xc0000008
INADDR_NONE ¶
INADDR_NONE: u64 : 0xffffffff
INVALID_HANDLE ¶
INVALID_HANDLE: Handle : ~Handle(0)
IPPROTO_ETHERNET ¶
IPPROTO_ETHERNET: int : 143
IPPROTO_ICMP ¶
IPPROTO_ICMP: int : 1
IPPROTO_IP ¶
IPPROTO_IP: int : 0
IPPROTO_IPV6 ¶
IPPROTO_IPV6: int : 41
IPPROTO_RAW ¶
IPPROTO_RAW: int : 255
IPPROTO_TCP ¶
IPPROTO_TCP: int : 6
IPPROTO_UDP ¶
IPPROTO_UDP: int : 17
MSG_TRUNC ¶
MSG_TRUNC: int : 0x20
OS ¶
OS: .Odin_OS_Type : ODIN_OS
O_APPEND ¶
O_APPEND: int : 0x00400
O_CLOEXEC ¶
O_CLOEXEC: int : 0x80000
O_CREATE ¶
O_CREATE: int : 0x00040
O_NOCTTY ¶
O_NOCTTY: int : 0x00100
O_NONBLOCK ¶
O_NONBLOCK: int : 0x00800
O_RDONLY ¶
O_RDONLY: int : 0x00000
O_WRONLY ¶
O_WRONLY: int : 0x00001
RTLD_BINDING_MASK ¶
RTLD_BINDING_MASK: int : 0x0003
RTLD_DEEPBIND ¶
RTLD_DEEPBIND: int : 0x0008
RTLD_GLOBAL ¶
RTLD_GLOBAL: int : 0x0100
RTLD_NODELETE ¶
RTLD_NODELETE: int : 0x1000
RTLD_NOLOAD ¶
RTLD_NOLOAD: int : 0x0004
RTLD_NOW ¶
RTLD_NOW: int : 0x0002
SEEK_CUR ¶
SEEK_CUR: int : 1
SEEK_DATA ¶
SEEK_DATA: int : 3
SEEK_END ¶
SEEK_END: int : 2
SEEK_HOLE ¶
SEEK_HOLE: int : 4
SEEK_MAX ¶
SEEK_MAX: int : SEEK_HOLE
SEEK_SET ¶
SEEK_SET: int : 0
SHUT_RDWR ¶
SHUT_RDWR: int : 2
SOCK_DGRAM ¶
SOCK_DGRAM: int : 2
SOCK_PACKET ¶
SOCK_PACKET: int : 10
SOCK_RAW ¶
SOCK_RAW: int : 3
SOCK_RDM ¶
SOCK_RDM: int : 4
SOCK_SEQPACKET ¶
SOCK_SEQPACKET: int : 5
SOCK_STREAM ¶
SOCK_STREAM: int : 1
SOL_SOCKET ¶
SOL_SOCKET: int : 1
SO_BROADCAST ¶
SO_BROADCAST: int : 6
SO_DEBUG ¶
SO_DEBUG: int : 1
SO_DONTROUTE ¶
SO_DONTROUTE: int : 5
SO_KEEPALIVE ¶
SO_KEEPALIVE: int : 9
SO_LINGER ¶
SO_LINGER: int : 13
SO_OOBINLINE ¶
SO_OOBINLINE: int : 10
SO_RCVBUF ¶
SO_RCVBUF: int : 8
SO_RCVTIMEO_NEW ¶
SO_RCVTIMEO_NEW: int : 66
SO_REUSEADDR ¶
SO_REUSEADDR: int : 2
SO_REUSEPORT ¶
SO_REUSEPORT: int : 15
SO_SNDBUF ¶
SO_SNDBUF: int : 7
SO_SNDTIMEO_NEW ¶
SO_SNDTIMEO_NEW: int : 67
TCP_CORK ¶
TCP_CORK: int : 3
TCP_NODELAY ¶
TCP_NODELAY: int : 1
Variables
Procedures
absolute_path_from_relative ¶
absolute_path_from_relative :: proc(rel: string, allocator := context.allocator) -> (path: string, err: Error) {…}
current_thread_id ¶
current_thread_id :: proc "contextless" () -> int {…}
file_info_delete ¶
file_info_delete :: proc(fi: File_Info, allocator := context.allocator) {…}
file_info_slice_delete ¶
file_info_slice_delete :: proc(infos: []File_Info, allocator := context.allocator) {…}
fstat ¶
fstat :: proc(fd: Handle, allocator := context.allocator) -> (fi: File_Info, err: Error) {…}
get_current_directory ¶
get_current_directory :: proc(allocator := context.allocator) -> string {…}
get_env_alloc ¶
get_env_alloc :: proc(key: string, allocator := context.allocator) -> (value: string) {…}
Related Procedure Groups
get_env_buf ¶
Related Procedure Groups
get_page_size ¶
get_page_size :: proc() -> int {…}
is_dir_path ¶
Related Procedure Groups
is_file_handle ¶
Related Procedure Groups
is_file_path ¶
Related Procedure Groups
is_path_separator ¶
is_path_separator :: proc(r: untyped rune) -> bool {…}
last_write_time ¶
TODO(zangent): Implement these! last_write_time :: proc(fd: Handle) -> File_Time {} last_write_time_by_name :: proc(name: string) -> File_Time {}
lookup_env_alloc ¶
lookup_env_alloc :: proc(key: string, allocator := context.allocator) -> (value: string, found: bool) {…}
Related Procedure Groups
lookup_env_buffer ¶
Related Procedure Groups
lstat ¶
lstat :: proc(name: string, allocator := context.allocator) -> (fi: File_Info, err: Error) {…}
processor_core_count ¶
processor_core_count :: proc() -> int {…}
read_dir ¶
read_dir :: proc(fd: Handle, n: int, allocator := context.allocator) -> (fi: []File_Info, err: Error) {…}
read_entire_file_from_filename ¶
read_entire_file_from_filename :: proc(name: string, allocator := context.allocator, loc := #caller_location) -> (data: []u8, success: bool) {…}
Related Procedure Groups
read_entire_file_from_filename_or_err ¶
read_entire_file_from_filename_or_err :: proc(name: string, allocator := context.allocator, loc := #caller_location) -> (data: []u8, err: Error) {…}
Related Procedure Groups
read_entire_file_from_handle ¶
read_entire_file_from_handle :: proc(fd: Handle, allocator := context.allocator, loc := #caller_location) -> (data: []u8, success: bool) {…}
Related Procedure Groups
read_entire_file_from_handle_or_err ¶
read_entire_file_from_handle_or_err :: proc(fd: Handle, allocator := context.allocator, loc := #caller_location) -> (data: []u8, err: Error) {…}
Related Procedure Groups
replace_environment_placeholders ¶
replace_environment_placeholders :: proc(path: string, allocator := context.allocator) -> (res: string) {…}
Always allocates for consistency.
stat ¶
stat :: proc(name: string, allocator := context.allocator) -> (fi: File_Info, err: Error) {…}
Procedure Groups
get_env ¶
get_env :: proc{ get_env_alloc, get_env_buf, }
is_dir ¶
is_dir :: proc{ is_dir_path, is_dir_handle, }
is_file ¶
is_file :: proc{ is_file_path, is_file_handle, }
lookup_env ¶
lookup_env :: proc{ lookup_env_alloc, lookup_env_buffer, }
read_entire_file ¶
read_entire_file :: proc{ read_entire_file_from_filename, read_entire_file_from_handle, }
read_entire_file_or_err ¶
read_entire_file_or_err :: proc{ read_entire_file_from_filename_or_err, read_entire_file_from_handle_or_err, }
Source Files
Generation Information
Generated with odin version dev-v0.0.1 (vendor "odin") Linux_amd64 @ 2026-01-30 10:23:16.467335873 +0000 UTC