QNX Neutrino 7.0 documentation update October 2017
New entries
- dl_iterate_phdr()
- Iterate over the shared objects that are loaded into a process's address space
Changed content
- clock_gettime()
- You can pass CLOCK_PROCESS_CPUTIME_ID or CLOCK_THREAD_CPUTIME_ID as the
clock_id argument to this function.
These are special clock IDs that refer to the CPU time of the calling process and thread, respectively.
- clock_settime()
- You can't set the time for a process or thread CPU-time clock.
- ClockTime()
-
- You can pass CLOCK_PROCESS_CPUTIME_ID or CLOCK_THREAD_CPUTIME_ID as the
clock_id argument to this function.
These are special clock IDs that refer to the CPU time of the calling process and thread, respectively.
- You can't set the time for a process or thread CPU-time clock.
- devctlv()
- This function returns EOVERFLOW if the sum of the IOV lengths
for the send and receive buffers combined exceeds INT_MAX,
or the number of parts for the send and receive buffers combined exceeds 524288.
- dispatch_create_channel()
- This function now has a flags argument.
Currently the only defined flag is DISPATCH_FLAG_CHANNEL_COIDDEATH.
- fcntl()
- We've updated the list of file status flags for the F_GETFL and F_SETFL
commands.
- mmap()
- Don't have a shared, writable mapping to a file that you're simultaneously accessing via
write().
The interaction between the two methods isn't well defined and may give unexpected results.
- MsgKeyData(), MsgKeyData_r()
- These functions indicate an error of EINVAL if
the number of IOV parts exceeds 524288,
or the op argument is invalid.
- MsgReadv(), MsgReadv_r(),
MsgReceivePulsev(), MsgReceivePulsev_r(),
MsgReceivev(), MsgReceivev_r(),
MsgReplyv(), MsgReplyv_r(),
MsgSendsv(), MsgSendsv_r(),
MsgSendsvnc(), MsgSendsvnc_r(),
MsgSendv(), MsgSendv_r(),
MsgSendvnc(), MsgSendvnc_r(),
MsgSendvs(), MsgSendvs_r(),
MsgSendvsnc(), MsgSendvsnc_r(),
MsgWritev(), MsgWritev_r()
- These functions indicate an error of EOVERFLOW if the sum of the IOV lengths
exceeds INT_MAX, or the number of parts exceeds 524288.
- MsgReceive(), MsgReceive_r(),
MsgReply(), MsgReply_r(),
MsgSend(), MsgSend_r(),
MsgSendnc(), MsgSendnc_r()
- The maximum size for a one-part message depends on the architecture:
- For 32-bit architectures, it's SSIZE_MAX (i.e., 231 − 1) bytes.
- For 64-bit architectures, the API allows up to SSIZE_MAX (i.e., 263 − 1) bytes,
but the virtual address space limits the size to 239 bytes.
- pulse_attach()
- We've described the circumstances in which this function can indicate an error of EBUSY.
- resmgr_context_t
- We've described the extra member.
The _extended_context structure that it points to now includes a data
member that a resource manager can use to point to any additional data that it needs.
- resmgr_msgreadv(),
resmgr_msgreplyv(),
resmgr_msgwritev()
- These functions indicate an error of EOVERFLOW if the sum of the IOV lengths
exceeds INT_MAX, or the number of parts exceeds 524288.
- SchedCtl()
- We've explained how the SCHED_CONT_APP and SCHED_STOP_APP commands
interact with the _NTO_TCTL_ONE_THREAD_CONT and
_NTO_TCTL_ONE_THREAD_HOLD commands for ThreadCtl().
- sendmsg()
- You typically use this function on datagram (SOCK_DGRAM) sockets, which use the send buffer only
as a length check and place the message in the interface transmit queue.
If the interface transmit queue is full, sendmsg()
returns -1 and sets errno to ENOBUFS.
- shutdown_system()
- After sending a SIGTERM signal to a process, this function sends a SIGCONT
signal, in case the process had earlier been stopped.
- stat()
- This function now indicates an error of EINVAL if it
couldn't convert the format of the stat structure received from the resource manager
to _STAT_FORM_PREFERRED.
- struct stat
- We've added the octal values for the flags in the st_mode member.
- ThreadCtl()
- We've explained how the _NTO_TCTL_ONE_THREAD_CONT and
_NTO_TCTL_ONE_THREAD_HOLD commands interact with
the SCHED_CONT_APP and SCHED_STOP_APP commands for SchedCtl().
- vfork()
- Note that we provide this function for backward compatibility.
You should use
posix_spawn()
instead.
Errata
- c16rtomb(), c32rtomb()
- These functions are declared in <uchar.h>.
- confstr()
- We've corrected the description of what this function returns.
- dlerror()
- This function returns NULL if no dynamic-linking errors have occurred since it was
last invoked.
- fcntl()
- There's no detection for deadlocks involving file locks;
this function doesn't set errno to EDEADLK.
- fs_crypto_file_set_domain()
- In order for you to assign a domain to a file or directory, the domain must be unlocked.
- fs_crypto_migrate_path(),
fs_crypto_migrate_tag()
- In order for you to tag files for migration, the source and destination domains must be unlocked.
- getpwent(),
getpwent_r(),
getpwnam(),
getpwnam_r(),
getpwuid(),
getpwuid_r()
- We've corrected the description of how these functions indicate errors.
The reentrant (*_r()) forms return error codes;
the nonreentrant forms set errno.
- iofunc_sync_verify()
- O_RSYNC isn't a valid flag for this function.
- kill()
- For a process to have permission to send a signal to a process, the real or effective user ID
of the sending process must match the real or saved set-user ID of the receiving process,
or the sending process must have the PROCMGR_AID_SIGNAL ability enabled.
- mbrtoc16(), mbrtoc32()
- These functions are declared in <uchar.h>.
- MsgReceive(),
MsgReceivePulse(),
MsgReceivePulsev(),
MsgReceivev()
- These functions have cancellation points.
- mtx_lock(),
mtx_trylock()
- These functions are declared in <threads.h>.
- printf()
- We've corrected the descriptions of the L length specifier and the effect
of the precision specifier on the F type specifier.
- procmgr_ability()
- We've corrected the description of PROCMGR_AID_TIMER.
It controls the ability to create a timer that sends a pulse to a process belonging to a different user.
- strdup()
- This function sets errno if an error occurs.
- thrd_create()
- We've deleted a note that didn't apply to this function.
- thrd_join()
- This function returns thrd_success on success.
- timer_create(),
TimerCreate()
- In order to create a timer that sends a pulse to a process belonging to a different user,
your process must have the PROCMGR_AID_TIMER ability enabled.
- utimensat()
- O_SEARCH isn't implemented.