The functions described in this chapter are exported by the library
(vicare linux)
. The API attempts to create a one–to–one
Scheme functions mapping towards Linux functions, keeping the same
semantics as much as possible; the platform’s own documentation is
relevant at the Scheme level.
NOTE These bindings are included and installed by default and they can be excluded at compile time by giving the option --disable-linux to the
configure
stript.
All the constants needed to use the interface are available as
identifier syntaxes exported by the (vicare platform constants)
library; if a constant value is not exported, file a feature request for
the project. If a constant is not defined on a platform: its value is
set to #f
.
The library (vicare platform features)
exports one identifier
syntax for each HAVE_
symbol defined by Vicare
configure
script, expanding to #t
or #f
.
For a list of Linux–specific system calls, see the syscalls(2)
manual page.
On non–Linux platforms we must avoid calling these functions, else the behaviour is undefined.
The availability of the Linux API can be tested at run–time with the
function vicare-built-with-linux-enabled
from (vicare)
((vicare-scheme)vicare-built-with-linux-enabled), and at
expand–time with the clause linux-enabled
of cond-expand
from SRFI-0 (see linux-enabled).
• linux cond-expand: | Feature-based expansion. | |
• linux env: | Operating system environment variables. | |
• linux status: | Process termination status. | |
• linux resources: | Resources usage and limits. | |
• linux epoll: | Polling for events on file descriptors. | |
• linux signalfd: | Accepting signals through file descriptors. | |
• linux timerfd: | Timer expiration handling through file descriptors. | |
• linux inotify: | Monitoring file system events. | |
• linux daemonisation: | Turning a process into a daemon. | |
• linux ether: | Ethernet address manipulation routines. |