return the segment with the given index


#include <sys/seginfo.h>
unsigned qnx_segment_index( pid_t proc,
                pid_t pid,
                unsigned index );


The qnx_segment_index() function returns a segment value for the process pid using index to select the segment. The index parameter is a small integer that indexes into the process' segment table. If pid is zero, the calling process is used.

If proc is equal to zero or PROC_PID, pid is assumed to be local on this node. To obtain information on a process on another node, proc should be a virtual circuit to that node and pid should be the local process ID on that node.


A segment value is returned on success. If the segment entry exists but isn't in use, a zero is returned. If the index is greater than the number of segments in the process or the process doesn't exist, -1 is returned and errno is set.


There's no segment associated with index.
Process pid doesn't exist.


#include <sys/kernel.h>
#include <sys/seginfo.h>

void main()
    int i;
    unsigned seg;
    pid_t pid;
    struct _seginfo buf;

    pid = PROC_PID;
    for( i = 0;
    ( seg = qnx_segment_index( PROC_PID, pid, i ) )
      != -1;
      ++i )
      if( seg ) {
        qnx_segment_info( PROC_PID, pid, seg, &buf );
        printf( "selector = %04x, length = %08ld\n",
        buf.selector, buf.nbytes );



Interrupt handler No
Signal handler Yes, but modifies errno
Thread Yes

See also:

errno, qnx_segment_alloc(), qnx_segment_alloc_flags(), qnx_segment_arm(), qnx_segment_flags(), qnx_segment_free(), qnx_segment_get(), qnx_segment_huge(), qnx_segment_info(), qnx_segment_overlay_flags(), qnx_segment_overlay(), qnx_segment_put(), qnx_segment_raw_alloc(), qnx_segment_raw_free(), qnx_segment_realloc()