The Funky-API includes most POSIX-function calls.
The are wrapped in a Funky-style API.
Funky supports non-blocking I/O to allow for asynchronous programming without the need of concurrency.
| Input-Output |
| std::BLOCK_DEVICE | a file type referring to a block device |
| std::CHARACTER_DEVICE | a file type referring to a character device |
| std::DIRECTORY | a file type referring to a directory |
| std::E2BIG | argument list too long |
| std::EACCES | permission denied |
| std::EADDRINUSE | address already in use |
| std::EADDRNOTAVAIL | cannot assign requested address |
| std::EADV | advertise error |
| std::EAFNOSUPPORT | address family not supported by protocol |
| std::EAGAIN | try again |
| std::EALREADY | operation already in progress |
| std::EBADE | bad exchange |
| std::EBADF | bad file descriptor |
| std::EBADFD | file descriptor in bad state |
| std::EBADMSG | not a data message |
| std::EBADR | bad address |
| std::EBADRQC | invalid request descriptor |
| std::EBADSLT | invalid slot |
| std::EBFONT | bad font file format |
| std::EBUSY | device or resource busy |
| std::ECANCELED | operation canceled |
| std::ECHILD | no child processes |
| std::ECHRNG | channel number out of range |
| std::ECOMM | communication error on send |
| std::ECONNABORTED | software caused connection abort |
| std::ECONNREFUSED | connection refused |
| std::ECONNRESET | connection reset by peer |
| std::EDEADLK | deadlock condition |
| std::EDESTADDRREQ | destination address required |
| std::EDOM | domain error |
| std::EDOTDOT | rfc931 nfs v2 error |
| std::EDQUOT | quota exceeded |
| std::EEXIST | file exists |
| std::EFAULT | bad address |
| std::EFBIG | file too large |
| std::EHOSTDOWN | host is down |
| std::EHOSTUNREACH | no route to host |
| std::EIDRM | identifier removed |
| std::EILSEQ | illegal byte sequence |
| std::EINPROGRESS | operation now in progress |
| std::EINTR | interrupted system call |
| std::EINVAL | invalid argument |
| std::EIO | input/output error |
| std::EISCONN | socket is already connected |
| std::EISDIR | is a directory |
| std::EISNAM | is a named type file |
| std::EKEYEXPIRED | key expired |
| std::EKEYREJECTED | key rejected |
| std::EKEYREVOKED | key revoked |
| std::EL2HLT | level 2 halted |
| std::EL2NSYNC | level 2 not synchronized |
| std::EL3HLT | level 3 halted |
| std::EL3RST | level 3 reset |
| std::ELIBACC | can not access a needed shared library |
| std::ELIBBAD | accessing a corrupted shared library |
| std::ELIBEXEC | cannot exec a shared library directly |
| std::ELIBMAX | attempted using too many links |
| std::ELIBSCN | .lib section in a.out corrupted |
| std::ELNRNG | link number out of range |
| std::ELOOP | too many symbolic links encountered |
| std::EMEDIUMTYPE | incorrect medium type |
| std::EMFILE | too many open files |
| std::EMLINK | too many links |
| std::EMSGSIZE | message too long |
| std::EMULTIHOP | multihop attempted |
| std::ENAMETOOLONG | file name too long |
| std::ENAVAIL | no XENIX semaphores available |
| std::ENETDOWN | network is down |
| std::ENETRESET | network dropped connection because of reset |
| std::ENETUNREACH | network is unreachable |
| std::ENFILE | file table overflow |
| std::ENOANO | no anode |
| std::ENOBUFS | no buffer space available |
| std::ENOCSI | no CSI structure available |
| std::ENODATA | no data available |
| std::ENODEV | no such device |
| std::ENOENT | no such file or directory |
| std::ENOERR | no error |
| std::ENOEXEC | exec format error |
| std::ENOKEY | key not available |
| std::ENOLCK | no record locks available |
| std::ENOLINK | link has been severed |
| std::ENOMEDIUM | no medium found |
| std::ENOMEM | out of memory |
| std::ENOMSG | no message of desired type |
| std::ENONET | machine is not on the network |
| std::ENOPKG | package not installed |
| std::ENOPROTOOPT | protocol not available |
| std::ENOSPC | no space left on device |
| std::ENOSR | out of streams resources |
| std::ENOSTR | device not a stream |
| std::ENOSYS | function not implemented |
| std::ENOTBLK | blocking operation not supported |
| std::ENOTCONN | socket is not connected |
| std::ENOTDIR | not a directory |
| std::ENOTEMPTY | directory not empty |
| std::ENOTNAM | not a XENIX named type file |
| std::ENOTRECOVERABLE | state not recoverable |
| std::ENOTSOCK | operation not supported on socket |
| std::ENOTTY | not a typewriter |
| std::ENOTUNIQ | file system does not support byte swapped files |
| std::ENXIO | no such device or address |
| std::EOPNOTSUPP | operation not supported |
| std::EOVERFLOW | value too large for defined data type |
| std::EOWNERDEAD | owner died |
| std::EPERM | operation not permitted |
| std::EPFNOSUPPORT | protocol family not supported |
| std::EPIPE | broken pipe |
| std::EPROTO | protocol error |
| std::EPROTONOSUPPORT | protocol not supported |
| std::EPROTOTYPE | protocol error |
| std::ERANGE | result too large |
| std::EREMCHG | remote address changed |
| std::EREMOTE | address not available |
| std::EREMOTEIO | remote I/O error |
| std::ERESTART | restart point is not valid |
| std::EROFS | read-only file system |
| std::ESHUTDOWN | socket shutdown |
| std::ESOCKTNOSUPPORT | socket type not supported |
| std::ESPIPE | illegal seek |
| std::ESRCH | no such process |
| std::ESRMNT | srmount error |
| std::ESTALE | stale NFS file handle |
| std::ESTRPIPE | stream pipe error |
| std::ETIME | timer expired |
| std::ETIMEDOUT | connection timed out |
| std::ETOOMANYREFS | too many references: cannot splice |
| std::ETXTBSY | text file busy |
| std::EUCLEAN | struct member not updated |
| std::EUNATCH | protocol driver not attached |
| std::EUSERS | too many users |
| std::EXDEV | cross-device link not permitted |
| std::EXFULL | exchange full |
| std::NAMED_PIPE | a file type referring to a named pipe |
| std::REGULAR_FILE | a file type referring to a regular file |
| std::SHUT_RD | shutdown read side |
| std::SHUT_RDWR | shutdown read and write side |
| std::SHUT_WR | shutdown write side |
| std::SOCKET | a file type referring to a socket |
| std::STDERR_FILENO | the file descriptor for standard error output |
| std::STDIN_FILENO | the file descriptor for standard input |
| std::STDOUT_FILENO | the file descriptor for standard output |
| std::SYMBOLIC_LINK | a file type referring to a symbolic link |
| std::UNKNOWN_FILE_TYPE | a file type referring to an unknown file type |
| std::access_time_nanoseconds_of | the nanoseconds part of the access time of a file |
| std::access_time_seconds_of | the whole seconds part of the access time of a file |
| std::block_count_of | the number of blocks allocated for the file |
| std::block_size_of | the size of a block |
| std::chdir | changes the current working directory |
| std::chmod | changes the mode of the specified file |
| std::chown | changes the owner and group of the specified file |
| std::chroot | changes the root directory |
| std::close | closes the specified file without returning success status |
| std::closedir | closes the specified directory stream |
| std::device_id | constructs a device ID from an unsigned long value |
| std::device_of | the device number |
| std::error_number | constructs an error number from an integer value |
| std::exec | replaces the current process with the given command |
| std::file_descriptor | constructs a file_descriptor from an integer value |
| std::file_type | constructs a file_type from an integer value |
| std::fstat | retrieves status information about the file described by the specified file descriptor |
| std::fsync | flushes all buffers associated with the file descriptor |
| std::getcwd | returns the current working directory |
| std::getegid | returns the effective group ID |
| std::getenv | returns the value of the specified environment variable |
| std::geteuid | returns the effective user id |
| std::getgid | returns the real group ID |
| std::gethostname | returns the hostname of the local computer |
| std::getlogin | returns the login name of the current user |
| std::getpid | returns the process ID |
| std::getppid | returns the parent process ID |
| std::getpwuid | returns the password entry for the specified user ID |
| std::getsid | returns the process ID of the session leader of the process group |
| std::getuid | returns the real user ID |
| std::group_id | constructs a group ID from an integer value |
| std::group_id_of | the group id |
| std::home_directory_of | the home directory |
| std::inode_number | constructs an inode number from an integer value |
| std::inode_number_of | the inode number |
| std::link_count_of | the number of hard links |
| std::mkdir | creates a directory |
| std::mkfifo | creates a FIFO |
| std::mode_of | the file mode |
| std::modification_time_nanoseconds_of | the nanoseconds part of the modification time of a file |
| std::modification_time_seconds_of | the whole seconds part of the modification time of a file |
| std::name_of | a filename |
| std::open | opens a file |
| std::open_tcp_socket | opens a TCP socket |
| std::open_unix_socket | opens a UNIX domain socket |
| std::opendir | opens a directory stream |
| std::password_of | the password |
| std::process_id | constructs a process id from an integer value |
| std::readdir | reads a directory entry |
| std::realpath | resolves the specified pathname |
| std::rename | renames or moves the specified file |
| std::root_device_of | the root device |
| std::sethostname | sets the hostname of the local computer |
| std::shell_of | the login shell |
| std::shutdown | shutdown the receiver and/or sender of the specified socket |
| std::shutdown_type | constructs a shutdown type from an integer value |
| std::size_of | the size of the file |
| std::stat | retrieves status information about the specified file |
| std::status_change_time_nanoseconds_of | the nanoseconds part of the status change time of a file |
| std::status_change_time_seconds_of | the whole seconds part of the status change time of a file |
| std::strerror | returns a textual representation of an error number |
| std::type_of | the type of the file |
| std::umask | set a new file creation mask |
| std::unlink | remove the specified file |
| std::user_id | constructs a user id from an integer value |
| std::user_id_of | the user id |
| std::user_information_of | the user information |
| std::username_of | the username |
| std::usleep | sleep for the specified number of microseconds |
| std::wait | waits for a child process to terminate |
| std::wait2 | waits for a child process to terminate |
| std_types::device_id | a POSIX device ID |
| std_types::device_id/std::equal | compares two device IDs for equality |
| std_types::device_id/std::hash | returns an integer hash value for a device ID |
| std_types::device_id/std::to_integer | returns an integer value representing the device ID |
| std_types::directory | a POSIX directory |
| std_types::directory/std::equal | compares two directories for equality |
| std_types::directory/std::hash | returns an integer hash value for a directory |
| std_types::dirent | a directory entry |
| std_types::error_number | a POSIX error number |
| std_types::error_number/std::equal | compares two error numbers for equality |
| std_types::error_number/std::hash | returns an integer hash value for an error number |
| std_types::error_number/std::to_integer | returns an integer value representing the error number |
| std_types::file_descriptor | a POSIX file descriptor |
| std_types::file_descriptor/std::equal | compares two file descriptors for equality |
| std_types::file_descriptor/std::hash | returns an integer hash value for a file descriptor |
| std_types::file_descriptor/std::read | reads from a file |
| std_types::file_descriptor/std::to_integer | returns an integer value representing the file descriptor |
| std_types::file_descriptor/std::write | try to write the specified number of octets |
| std_types::file_type | a POSIX file type |
| std_types::file_type/std::equal | compares two file types for equality |
| std_types::file_type/std::hash | returns an integer hash value for a file type |
| std_types::file_type/std::to_integer | returns an integer value representing the file_type |
| std_types::group_id | a POSIX group ID |
| std_types::group_id/std::equal | compares two group IDs for equality |
| std_types::group_id/std::hash | returns an integer hash value for a group ID |
| std_types::group_id/std::to_integer | returns an integer value representing the group ID |
| std_types::inode_number | a POSIX inode number |
| std_types::inode_number/std::equal | compares two inode numbers for equality |
| std_types::inode_number/std::hash | returns an integer hash value for an inode number |
| std_types::inode_number/std::to_integer | returns an integer value representing the inode number |
| std_types::passwd | a password entry |
| std_types::process_id | a POSIX process ID |
| std_types::process_id/std::equal | compares two process ids for equality |
| std_types::process_id/std::hash | returns an integer hash value for a process id |
| std_types::process_id/std::to_integer | returns an integer value representing the process id |
| std_types::shutdown_type | a POSIX shutdown type |
| std_types::shutdown_type/std::equal | compares two shutdown types for equality |
| std_types::shutdown_type/std::hash | returns an integer hash value for a shutdown type |
| std_types::shutdown_type/std::to_integer | returns an integer value representing the shutdown type |
| std_types::stat | file status information |
| std_types::user_id | a POSIX user id |
| std_types::user_id/std::equal | compares two user ids for equality |
| std_types::user_id/std::hash | returns an integer hash value for a user id |
| std_types::user_id/std::to_integer | returns an integer value representing the user id |