( ESNUG 318 Item 8 ) --------------------------------------------- [5/21/99]
Subject: ( ESNUG 316 #15 ) Can't Pipe VCS Output; Stdout Is Not A Stdout!
> I run vcs sim. Pipe it to tee. What do I get? Nothing output in the
> shell! Run any-other-program-in-the-history-of-unix. Pipe it to tee.
> You get? Programs std output in shell. How can I fix/work around this?
>
> - Todd
> Electronics For Imaging, Inc. Foster City, CA
From: Peter Trajmar <trajmar@teralogic-inc.com>
John,
I'm not sure if this is the answer to this person's problem, but some
tools may output some information to stdout and some to stderr.
If you use a simple pipe, "|", you will get only the stdout information.
If you want both stdout and sterr piped, you need to use "|&".
- Peter Trajmar
TeraLogic, Inc.
---- ---- ---- ---- ---- ---- ----
From: Michael McNamara <mac@surefirev.com>
John,
Three comments:
1) most unix commands write errors to stderr, and regular messages to
stdout. using '|' redirects just stdout. If you'd like to redirect
both stderr and stdout, and you are using csh or tcsh, type:
% simv |& tee logfile
If you are using sh or bash, type:
$ simv | tee 2>&1
2) vcs and the simv write everything they write to the screen, also to
the log file. So why use tee? Instead just specify a log file:
% simv -l logfile
or
% vcs -l logfile foo.v ...
3) It's not my fault!
- Michael McNamara
SureFire Verification, Inc.
|
|