Stdout and Stderr

The output channels known as stdout and stderr are used by many tools to inform the user about the progress of execution and abnormal conditions. This information must be preserved, because it is often crucial to diagnose the cause of a tool failure. The VOV wrappers do this automatically by capturing both stdout and stderr into files.

On UNIX, the name of the stdout file has the following structure: .stdout_cmd_id_unique_id where cmd_id consists of the first few non-blank characters of the command line (excluding the wrapper) and unique_id is a nine digit number computed by hashing the entire command line.

The name for stderr is similarly computed as .stderr_cmd_id_unique_id

% echo "Ciao bello" > dddd ; # No wrapper, not part of flow.
% vw2 cat dddd
Ciao bello
% vsx !
00234120 VALID ${SEV_PROJECT_DIR}/txt/dddd
  >>>> Node 00234141  VALID  vw2 cat dddd
00234127 VALID ${SEV_PROJECT_DIR}/txt/.stdout_catdd_013671688

On Windows NT, the names have the following structure: ./vovstd/out_cmd_id_unique_id.txt ./vovstd/err_cmd_id_unique_id.txt

If the files are empty upon termination of a successful job, they are forgotten from the trace. You can change this behavior by proper encapsulation.

Change the Name and Location with VOV_STDOUT_SPEC

By setting the variable VOV_STDOUT_SPEC, you can redirect stdout and stderr to a different file name. The value is a computed by substituting the the substrings @OUT@ and @UNIQUE@ and @ID@. Examples:
setenv VOV_STDOUT_SPEC .std@OUT@.@ID@

Cleaning up Stdout and Stderr Files

Over time, it is possible for many stdout and stderr files to accumulate in a directory. An efficient way to cleanup a directory is to use vovcleandir, as in this example:
% vovcleandir .
vovcleandir: message: Wait while I ask the VOV server about 2 files ...
vovcleandir: message: The directory is clean.
% vovcleandir -all
...output omitted...