pvm_precv man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

PRECV(3PVM)			PVM Version 3.4			   PRECV(3PVM)

NAME
       pvm_precv - Receive a message directly into a buffer.

SYNOPSIS
       C    int info = pvm_precv( int tid, int msgtag, char *buf,
				  int len, int datatype, int *atid,
				  int *atag, int *alen )

       Fortran	 call pvmfprecv( tid, msgtag, buf, len, datatype,
			       atid, atag, alen, info )

PARAMETERS
       tid     Integer task identifier of sending process (to match).

       msgtag  Integer message tag (to match).	msgtag should be >= 0.

       buf     Pointer to a buffer to receive into.

       len     Length of buffer (in multiple of data type size).

       datatype
	       Type of data to which buf points (see below).

       atid    Returns actual TID of sender.

       atag    Returns actual message tag.

       alen    Returns actual message length.

       info    Returns	PvmOk  on  success.  Values less than zero indicate an
	       error.

DESCRIPTION
       The routine pvm_precv blocks the process until  a  message  with	 label
       msgtag has arrived from tid.  pvm_precv then places the contents of the
       message in the supplied buffer, buf, up to a maximum length  of	len  *
       (size of data type).

       pvm_precv  can receive messages sent by pvm_psend, pvm_send, pvm_mcast,
       or pvm_bcast.

       A -1 in msgtag or tid matches anything.	This allows the user the  fol‐
       lowing  options.	  If  tid = -1 and msgtag is defined by the user, then
       pvm_precv will accept a message from any process which has  a  matching
       msgtag.	 If msgtag = -1 and tid is defined by the user, then pvm_precv
       will accept any message that is sent from process tid.  If tid = -1 and
       msgtag = -1, then pvm_precv will accept any message from any process.

       In  C the datatype parameter must be one of the following, depending on
       the type of data to be unpacked: [Version 3.3.0 - This  parameter  only
       determines  message  length,  not data conversion.  It only unpacks raw
       bytes]
	   datatype    Data Type
	   PVM_STR     string
	   PVM_BYTE    byte
	   PVM_SHORT   short
	   PVM_INT     int
	   PVM_FLOAT   real
	   PVM_CPLX    complex
	   PVM_DOUBLE  double
	   PVM_DCPLX   double complex
	   PVM_LONG    long integer
	   PVM_USHORT  unsigned short int
	   PVM_UINT    unsigned int
	   PVM_ULONG   unsigned long int

       In Fortran the same data types specified for unpack should be used.

       The PVM model guarantees the following about message order.  If task  1
       sends  message A to task 2, then task 1 sends message B to task 2, mes‐
       sage A will arrive at task 2 before message B.  Moreover, if both  mes‐
       sages arrive before task 2 does a receive, then a wildcard receive will
       always return message A.

       If pvm_precv is successful, info will be = 0.   If  some	 error	occurs
       then info will be < 0.

       pvm_precv  is  blocking	which  means the routine waits until a message
       matching the user specified tid and msgtag arrives at the  local	 pvmd.
       If  the	message has already arrived then pvm_precv returns immediately
       with the message.

       pvm_precv does not affect the state of the current receive message buf‐
       fer (created by the other receive functions).

WARNINGS
       In  some	 versions  of  PVM  (CM5,  I860 and PGON), messages sent using
       pvm_psend must be received only by pvm_precv, likewise those sent  with
       pvm_send	  must	be  received  by  pvm_recv,  pvm_nrecv	or  pvm_trecv.
       pvm_psend  is  not  compatible  with  pvm_recv	(nor   pvm_send	  with
       pvm_precv).    In   addition,   pvm_probe  is  not  interoperable  with
       pvm_psend.

       This problem occurs because nonstandard message headers	are  used  for
       efficiency  in  the pvm_psend function.	In the generic Unix version of
       PVM, the calls are fully interoperable.

       The message tag space is shared between pvm_send and pvm_psend, so  you
       must  be	 careful  to avoid selecting the wrong message (for example by
       using a wildcard to match the message).

EXAMPLES
       C:
	   info = pvm_precv( tid, msgtag, array, cnt, PVM_FLOAT,
			     &src, &rtag, &rlen );

       Fortran:
	   CALL PVMFPRECV( -1, 4, BUF, CNT, REAL4,
	  >		   SRC, RTAG, RCNT, INFO )

ERRORS
       These error conditions can be returned by pvm_precv

       PvmBadParam
	      giving an invalid tid, msgtag, or datatype.

       PvmSysErr
	      pvmd not responding.

SEE ALSO
       pvm_psend(3PVM), pvm_recv(3PVM)

				15 March, 1994			   PRECV(3PVM)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net