Errata

ConnectAttach()
You likely need to include <sys/netmgr.h> when you use this function, in order to define ND_LOCAL_NODE.
struct dirent
In some filesystems, the d_offset member identifies the directory entry itself; in others, it's the offset of the next directory entry.
gettimeofday(), settimeofday()
We've corrected the types of the members of the timeval structure.
InterruptAttachEvent()
An error of EPERM indicates that the process doesn't have I/O privileges.
iofunc_attr_t
The nlink member of this structure must be at least 2 for names that represent a directory (one for the directory itself, one for the ./ entry in it).
iofunc_lock()
This function is actually implemented.
mq_receive()
If the given msg_len is less than the mq_msgsize for the given queue, this function sets errno to EMSGSIZE, not EINVAL.
name_attach()
We've corrected the example so that it now compiles cleanly.
resmgr_attach()
We've corrected the information about the flags:
  • Use the flags whose names don't start with an underscore (RESMGR_FLAG_*) in the flags member of the resmgr_attr_t structure.
  • Use the flags whose names do start with an underscore (_RESMGR_FLAG_*) in the flags argument to this function.
resmgr_iofuncs()
The public version of this function takes only one argument, a pointer to a resmgr_context_t structure.
setrlimit()
If the RLIMIT_DATA limit is exceeded, the brk(), mmap(), and sbrk() functions fail with errno set to ENOMEM.
timer_timeout(), TimerTimeout()
Because of the nature of time measurement, timers might actually expire later than the specified time. For more information, see the Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide.
ttyname(), ttyname_r()
We've corrected the list of errors that these functions can indicate.
wait(), wait4(), waitid(), waitpid()
These functions suspend the calling thread, not the calling process.