CATCHOUT(3PVM) PVM Version 3.4 CATCHOUT(3PVM)NAME
pvm_catchout - Catch output from child tasks.
SYNOPSIS
C #include <stdio.h>
int info = pvm_catchout( FILE *ff )
Fortran call pvmfcatchout( onoff, info )
PARAMETERS
ff File descriptor on which to write collected output.
onoff Integer parameter. Turns output collection on or off.
info Integer status code returned by the routine. Values less than
zero indicate an error.
DESCRIPTION
The routine pvm_catchout causes the calling task (the parent) to catch
output from any tasks spawned after the call to pvm_catchout. Charac‐
ters printed on stdout or stderr in children tasks are collected by the
pvmds and sent in control messages to the parent task, which tags each
line and appends it to the specified file. Output from grandchildren
(spawned by children) tasks is also collected, provided the children
don't reset their PvmOutputTid.
If option PvmShowTids (see pvm_setopt) is true (nonzero), output is
printed as shown below, tagged with the task id where the output origi‐
nated:
[txxxxx] BEGIN
[txxxxx] (text from child task)
[txxxxx] END
The output from each task includes one BEGIN line and one END line,
with whatever the task prints in between. If PvmShowTids is false, raw
output is printed with no additional information.
In C, the output file descriptor may be specified. Giving a null
pointer turns output collection off for any subsequently spawned child
tasks. (Any existing output collection will still proceed at the child
tasks, until they exit or change theirPvmOutputTid or related settings
- see man page for pvm_setopt().) In Fortran, output collection can
only be turned on or off (again only for subsequently spawned child
tasks), and is always logged to the stdout of the parent task.
If pvm_exit is called while output collection is in effect, it will
block in order to print all the output, until all tasks sending the
given task output have exited. To avoid this, output collection can be
turned off by calling pvm_catchout(0) before calling pvm_exit.
pvm_catchout() always returns 0.
EXAMPLES
C:
#include <stdio.h>
pvm_catchout(stdout);
Fortran:
CALL PVMFCATCHOUT( 1, INFO )
SEE ALSOpvm_exit(3PVM), pvm_setopt(3PVM), pvm_spawn(3PVM)
13 July, 1994 CATCHOUT(3PVM)