ZCOM C I/F Library Routines

ZREAD (3X)

 

 

ZREAD (3X)

 

NAME

 

zread – Read from ZLU

 

SYNOPSIS

 

 

#include

<zcom/zcomsys.h>

 

#include

<zcom/zcomcall.h> /* if compiled with ANSI C (recommended) */

int32 zread (zap, mode, mhp, ibuf, len, rlen, rstat)

zaddr_type

*zap;

 

uint32

 

mode;

 

zmhd_type

 

*mhp;

 

char

 

*ibuf;

 

int32

 

len;

 

int32

 

*rlen;

 

int32

 

*rstat;

 

DESCRIPTION

Routine zread fetches the next message from the head of a program ZLU

 

 

queue. The program has the option to wait (i.e., suspend) if there is no

 

 

data on the queue specified. The actual length of the data message is

 

 

returned in rlen.

 

 

 

This routine is similar to zpeek(3X) except it removes the message after

 

 

fetching it.

 

 

 

The libraries libzcom_c.a and libpthread.a must be linked into the calling

 

 

program by giving the options “-lzcom_c -lpthread” to cc(1) or ld(1).

Threads

 

This routine may be called from a multi-threaded application using the

Considerations

POSIX (1003.1c) kernel threads API package. This routine has the

 

 

following characteristics when called by a multi-threaded application:

 

 

cancellation point

Thread cancellation can occur when a thread

 

 

 

calls this routine.

async-cancel unsafe The calling thread’s cancelability type must be PTHREAD_CANCEL_DEFERRED if cancellation is enabled.

async-signal unsafe It cannot be called from a signal handler.

296

Chapter 4