The Library Reference
describes the C functions, data types, and protocols that are included as
part of the QNX Neutrino RTOS.
Here are some links to help you find a function quickly:
A ¦
B ¦
C ¦
D ¦
E ¦
F ¦
G ¦
H ¦
I ¦
J ¦
K ¦
L ¦
M ¦
N ¦
O ¦
P ¦
Q ¦
R ¦
S ¦
T ¦
U ¦
V ¦
W ¦
X ¦
Y ¦
Z
The Library Reference also contains:
Significant changes:
- posix_typed_mem_get_info(),
posix_typed_mem_open()
- New functions for POSIX support of memory-mapping.
- pthread_getname_np(),
pthread_setname_np()
- The pthread_getname_np() function retrieves the name
of a thread. The pthread_setname_np() function names a
thread in your application.
- pthread_attr_getstackprealloc(),
pthread_attr_setstackprealloc()
- Get and set the memory to preallocate for a MAP_LAZY stack.
- munmap_flags()
- New function to unmap previously mapped addresses exercising more control.
- SchedCtl()
- Control the adaptive partitioning scheduler
- SIGEV_CLEAR_CRITICAL()
- In adaptive partitioning, make a thread run as noncritical.
See
sigevent.
- SIGEV_GET_TYPE()
- Determine the type of a sigevent event.
See sigevent.
- SIGEV_MAKE_CRITICAL()
- In adaptive partitioning, make a thread run as critical.
See
sigevent.
- ChannelCreate()
- If you're using adaptive partitioning and you set
_NTO_CHF_FIXED_PRIORITY, the receiving thread won't run
in the sending thread's partition.
- getrlimit(),
getrlimit64(),
setrlimit(),
setrlimit64()
- Added the following resources:
- RLIMIT_MEMLOCK
- RLIMIT_NPROC
- RLIMIT_NTHR
- RLIMIT_OFILE
- RLIMIT_RSS
- iofunc_open_default()
- The documentation now describes the extra argument.
- mlock(),
mlockall(),
munlock()
- The documentation now describes the POSIX support for memory mapping.
- mmap()
- The documentation now includes a new MAP_NOINIT flag.
- msync()
- The documentation now describes new MS_CACHE_ONLY flag.
- posix_mem_offset(),
posix_mem_offset64()
- The documentation now describes the POSIX support for memory-mapping.
- sigevent
- In the future, the library might use hidden bits in the
sigev_notify member of the sigevent structure.
Don't compare this member directly to values such as
SIGEV_PULSE; use the SIGEV_GET_TYPE() macro.
- spawn()
- The documentation now describes the SPAWN_EXPLICIT_CPU
flag and the runmask member of the inheritance structure.
- ThreadCtl()
- The documentation now contains the following commands:
- _NTO_TCTL_NAME
- _NTO_TCTL_ONE_THREAD_HOLD
- _NTO_TCTL_ONE_THREAD_CONT
- _NTO_TCTL_RUNMASK_GET_AND_SET
- _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT
- cache_fini()
- Free resource when the driver is unloaded.
- CACHE_FLUSH()
- Flush cache line associated to a data buffer.
- cache_init()
- Register with the cache coherency library.
- CACHE_INVAL()
- Invalidate cache line associated to a data buffer.
- mq_close(),
mq_getattr(),
mq_notify(),
mq_open(),
mq_receive(),
mq_send(),
mq_setattr(),
mq_timedreceive(),
mq_timedsend(),
mq_unlink()
- Added information about the traditional (mqueue) and
alternate (mq) implementations of message queues.
- nanospin(),
nanospin_calibrate(),
nanospin_count(),
nanospin_ns(),
nanospin_ns_to_count()
- The nanospin*() functions are designed for use with
hardware that requires short time delays between accesses.
You should use them to delay only for times less than a few milliseconds.
For longer delays, use the POSIX
timer_*()
functions.
- pci_attach_device(),
pci_find_class(),
pci_find_device()
- For a list of supported device and vendor IDs, see
<hw/pci_devices.h>;
for a list of class and subclass codes, see <hw/pci.h>.
- _cmdname()
- Corrected the information about what this function returns.
- openlog()
- Corrected the name of the LOG_FTP facility.
- pci_attach_device()
- The BusNumber and DevFunc members of the
pci_dev_info structure are input/output.
- pci_irq_routing_options()
- This function is for x86 only.
- sem_close(),
sem_open(),
sem_unlink()
- Named semaphores are now managed by procnto, not
mqueue.
- thread_pool_create()
- The description of the block_func member of the
thread_pool_attr_t structure has been corrected.
- vfprintf(),
vprintf()
- The code samples now compile without warnings.
- asyncmsg_channel_create()
- Create an asynchronous message channel.
- asyncmsg_channel_destroy()
- Destroy an asynchronous message channel.
- asyncmsg_connect_attach()
- Establish a connection between a process and a channel.
- asyncmsg_connect_attr()
- Return the original connection attributes.
- asyncmsg_connect_detach()
- Break a connection between a process and a channel.
- asyncmsg_flush()
- Flush the messages sent through the connection.
- asyncmsg_free()
- Free a message buffer.
- asyncmsg_get()
- Receive an asynchronous message.
- asyncmsg_malloc()
- Allocate a message buffer for sending.
- asyncmsg_put(),
asyncmsg_putv()
- Send asynchronous messages to a connection.
- shm_ctl_special()
- Give special attributes to a shared memory object
- getdomainname()
- If the buffer isn't large enough, getdomainname() truncates
the domain name.
- getgrouplist()
- The Neutrino implementation of this function ignores the basegid
argument.
- mallopt()
- The MALLOC_CKACCESS, MALLOC_FILLAREA, and MALLOC_CKCHAIN
options were added to this call.
- MsgReply(),
MsgReply_r(),
MsgReplyv(),
MsgReplyv_r()
- The MsgSend*_r() functions use negative errno values
to indicate failure, so you shouldn't pass a negative value for the
status to MsgReply*(), because the
MsgSend*_r() functions could interpret it as an error code.
- name_attach()
- The example now handles an _IO_CONNECT message.
- nanospin(),
nanospin_ns(),
and
nanospin_ns_to_count()
- The first time that you call these functions, the C library invokes
nanospin_calibrate()
with an argument of 0 (interrupts enabled), unless you call it directly
first.
- pci_attach_device()
- Added PCI_MASTER_ENABLE to the flags.
- procmgr_daemon()
- The data in the siginfo_t structure for the
SIGCHLD signal that the parent receives isn't
useful in this case.
- rsrcdbmgr_create()
- Added RSRCDBMGR_FLAG_NOREMOVE to the flags.
- setenv()
- This function doesn't free any memory.
If you want to change the value of an existing environment variable,
you should use
putenv()
instead.
- sigevent
- If you don't want to modify the priority of the thread that receives
the pulse, specify SIGEV_PULSE_PRIO_INHERIT for the
priority when you call SIGEV_PULSE_INIT().
- spawn(),
spawnp()
- Added descriptions of the rest of the flags for the
inheritance structure.
- If you set SPAWN_EXEC in the flags member of
the inheritance structure, these functions don't return,
unless an error occurred.
- getsubopt()
- Corrected the example.
- mq_notify()
- Don't use SIGEV_INTR as an event type.
- pause()
- This function suspends the calling thread, not the process,
until delivery of a signal.
- pthread_setschedparam()
- The timeslice for round-robin scheduling (SCHED_RR)
is 4 * the clock period.
- You can specify sporadic scheduling at any time, not just when you
create a thread.
- regexec()
- Corrected the description of the regmatch_t structure.
- sched_get_priority_max(),
sched_get_priority_min(),
sched_setscheduler(),
SchedInfo(),
SchedSet()
- The timeslice for round-robin scheduling (SCHED_RR)
is 4 * the clock period.
- sched_setscheduler(),
SchedSet()
- You can specify sporadic scheduling at any time, not just when you
create a thread.
- spawn(),
spawnl(),
spawnle(),
spawnlp(),
spawnlpe(),
spawnp(),
spawnv(),
spawnve(),
spawnvp(),
spawnvpe()
- The child process can't access the parent process's environment,
only its own.
- fopen64()
- Large-file support for fopen().
- freopen64()
- Large-file support for freopen().
- ftw64()
- Large-file support for ftw().
- getnameinfo()
- Perform address-to-nodename translation.
- inet6_option_*()
- Manipulate IPv6 hop-by-hop and destination options.
- inet6_rthdr_*()
- manipulate IPv6 Router header options.
- ipsec_dump_policy()
- Generate a readable string from an IPsec policy specification.
- ipsec_get_policylen()
- Get the length of the IPsec policy.
- ipsec_set_policy()
- Generate an IPsec policy specification structure from a readable string.
- nftw(), nftw64()
- Walk a file tree and its large-file support.
- poll()
- Input/output multiplexing.
- resmgr_handle_tune()
- Tune aspects of client fd-to-OCB mapping
- sctp_bindx()
- Add or remove one or more addresses from a given association.
- sctp_connectx()
- Help associate an endpoint that is multi-homed.
- sctp_freeladdrs()
- Free all resources allocated by sctp_getladdrs().
- sctp_freepaddrs()
- Free all resources allocated by sctp_getpaddrs().
- sctp_getladdrs()
- Return all locally bound addresses on a socket.
- sctp_getpaddrs()
- Return all peer addresses in an association.
- sctp_peeloff()
- Branch off an association into a separate socket.
- SCTP
- Stream Control Transmission Protocol.
- sctp_recvmsg()
- Receive message using advanced SCTP features.
- sctp_sendmag()
- Send message using advanced SCTP features.
- tmpfile64()
- Large-file support for tmpfile().
- dispatch_unblock()
- Unblock all of the threads that are blocked on a dispatch handle
- errno
- Each thread in a multi-threaded program has its own error value in its
thread local storage.
No matter which thread you're in, you can simply refer to errno
-- it's defined in such a way that it refers to the correct variable for
the thread.
For more information, see
"Local storage for private data"
in the documentation for ThreadCreate().
- pthread_attr_setschedpolicy().
- Sporadic scheduling (SCHED_SPORADIC) is a new
feature of QNX Neutrino 6.2.0.
- sched_param
- Structure of scheduling parameters
- va_copy()
- Make a copy of a variable argument list
- bind(),
bindresvport()
- These functions aren't cancellation points any more, because this
conflicted with POSIX.
- htonl(),
htons(),
inet_ntop(),
inet_pton(),
isfdtype(),
ntohl(),
ntohs()
- These functions have been moved from libsocket to
libc.
- alphasort()
- This function compares two directory entries; it doesn't sort an
array of entries.
- execlpe(),
execvpe()
- You can now execute a shell script.
- fgetc(),
fgetchar(),
fgets(),
fgetwc(),
fgetws(),
getc(),
getc_unlocked(),
getchar(),
getchar_unlocked(),
gets(),
getw(),
getwc(),
getwchar()
- Use
feof()
or
ferror()
to distinguish an end-of-file condition from an error.
- fstat(), fstat64()
- These functions return -1 if an error occurs.
- iofunc_mmap(),
iofunc_mmap_default()
- These functions return a nonpositive value on success.
- InterruptAttach(),
InterruptAttachEvent()
- You should always set _NTO_INTR_FLAGS_TRK_MSK.
- mq_getattr(),
mq_setattr()
- The mq_flags member of the mq_attr structure
applies to the message-queue description (i.e. locally), not to the queue
as a whole.
- mq_open()
- Corrected the interpretation of the name argument.
- MsgError(), MsgError_r()
- If the error argument is EOK, the
MsgSend*() call returns EOK;
if error is any other value, the MsgSend*() call
returns -1.
- MsgSendPulse(), MsgSendPulse_r()
- You can now send pulses across the network.
You can send a pulse to any process -- not just to a process in the same
process group -- if your process has the appropriate permission.
- name_open()
- This function returns a nonnegative integer representing a side-channel
connection ID, or -1 if an error occurred.
- printf()
- The exponent produced for the e and E formats is
at least two digits long.
Clarified what happens if the format string includes invalid multibyte
characters.
- pthread_mutex_timedlock(),
pthread_rwlock_timedrdlock(),
pthread_rwlock_timedwrlock()
- The timeout is based on the CLOCK_REALTIME clock.
- _resmgr_ocb()
- Corrected the name.
- select()
- This function and the associated macros are now defined in
<sys/select.h>, instead of <sys/time.h>
(which includes <sys/select.h>).
- sem_open()
- Corrected the interpretation of the sem_name argument.
- sem_timedwait()
- The timeout is based on the CLOCK_REALTIME clock.
- send()
- The list of errors now includes EPIPE.
- shm_open()
- Corrected the interpretation of the name argument.
- sigaction()
- Corrected the example (it isn't safe to call
printf()
in a signal handler).
- spawn(),
spawnl(),
spawnle(),
spawnlp(),
spawnlpe(),
spawnp(),
spawnv(),
spawnve(),
spawnvp(),
spawnvpe()
- You can now execute a shell script.
The child process's tms_utime, tms_stime,
tms_cutime, and tms_cstime are now calculated.
- timer_create()
- Don't use SIGEV_INTR or SIGEV_UNBLOCK
for the event type.
- vsnprintf()
- Corrected the returned values.
Significant changes:
- addrinfo
- TCP/IP address information
- dircntl()
- Control an open directory
- freeaddrinfo()
- Free an address information structure
- freeifaddrs()
- Free an address information structure
- gai_strerror()
- Return the getaddrinfo() error code
- getaddrinfo()
- Get address information
- getdomainname()
- Get the domain name of the current host
- gethostbyname2()
- Get a network host entry, given a name
- getifaddrs()
- Get a network interface address
- hwi_find_item()
- Find an item in the hwi_item structure
- hwi_find_tag()
- Find a tag in the hwi_item structure
- hwi_off2tag()
- Return a pointer to the start of a tag in the hwinfo area of the system page
- hwi_tag2off()
- Return the offset from the start of the hwinfo area of the system page
- ICMP6
- Internet Control Message Protocol for IPv6
- if_freenameindex()
- Free dynamic memory allocated by if_nameindex()
- if_indextoname()
- Map an interface index to its name
- if_nameindex()
- Return a list of interfaces
- if_nametoindex()
- Map an interface name to its index
- ifaddrs()
- Structure that describes an Internet host
- INET6
- Internet Protocol version 6 family
- inet_net_ntop()
- Convert an Internet network number to CIDR format
- inet_net_pton()
- Convert an Internet network number from CIDR format to network format
- IPv6
- Internet Protocol version 6
- IPsec
- Internet security protocol
- mallinfo()
- Get memory allocation information
- mallopt()
- Control the memory allocation
- mcheck()
- Enable memory allocation routine consistency checks
- memalign()
- Allocate aligned memory
- mprobe()
- Perform consistency check on memory
- posix_memalign()
- Allocate aligned memory
- procmgr_session()
- Provide process manager session support
- _resmgr_handle_grow()
- Expand the capacity of the device manager database
- _resmgr_io_func()
- Retrieve an I/O function from an I/O function table
- resmgr_iofuncs()
- Extract the I/O function pointers associated with c connection
- _resmgr_ocb()
- Retrieve an Open Control Block
- sched_get_priority_adjust()
- Calculate the allowable priority for the scheduling policy
- seekdir()
- Set the position for the next read of the directory stream
- _sleepon_broadcast()
- Wake up multiple threads
- _sleepon_destroy()
- Destroy a sleepon
- _sleepon_init()
- Initialize a sleepon
- _sleepon_lock()
- Lock a sleepon
- _sleepon_signal()
- Wake up a single thread
- _sleepon_unlock()
- Unlock a sleepon
- _sleepon_wait()
- Wait on a sleepon
- tcsetsid()
- Make a terminal device a controlling device
- strtoimax(), strtoumax()
- Convert a string to an integer type
- telldir()
- Get the location associated with the directory stream
- valloc()
- Allocate a heap block aligned on a page boundary
- wcstoimax(), wcstoumax()
- Convert a wide-character string to an integer type
- snprintf()
- Corrected the Returns section and Classifications
Significant changes:
The following functions have been added:
- Wide-character functions
- Wide-character versions of many functions
- InterruptHookTrace()
- Attach the pseudo interrupt handler that's used by the instrumented module
- iofdinfo()
- Retrieve server attributes
- iofunc_fdinfo()
- Handle an _IO_FDINFO message
- iofunc_fdinfo_default()
- Default handler for _IO_FDINFO messages
- MsgVerifyEvent(), MsgVerifyEvent_r()
- Check the validity of a receive ID and an event configuration
- resmgr_unbind()
- Remove an OCB
- straddstr()
- Concatenate one string on to the end of another
- SyncCtl(), SyncCtl_r()
- Perform an operation on a synchronization object
- SyncMutexEvent(), SyncMutexEvent_r()
- Attach an event to a mutex
- SyncMutexRevive(), SyncMutexRevive_r()
- Revive a mutex
- thread_pool_control()
- Control the thread pool behavior
- thread_pool_limits()
- Wrapper function for thread_pool_control()
- TraceEvent()
- Trace kernel events
- matherr()
- Handle errors in math library functions
A ¦
B ¦
C ¦
D ¦
E ¦
F ¦
G ¦
H ¦
I ¦
J ¦
K ¦
L ¦
M ¦
N ¦
O ¦
P ¦
Q ¦
R ¦
S ¦
T ¦
U ¦
V ¦
W ¦
X ¦
Y ¦
Z
© 1996-2006, QNX Software Systems. All rights reserved.
For more information, See the Copyright
Notice.