Re: shell and output redirection

  • From: Mladen Gogala <mladen@xxxxxxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 2 Jul 2004 16:45:25 -0400

On 07/02/2004 04:18:26 PM, Tanel P?der wrote:
>
> 
> Ok, but if program 1 will issue a write request to the pipe now, shall it
> post process 2 and not continue before process 2 has completed?

That is a part of pipe magic. Pipe blocks when it's full. The other program
will get to it, when it executes something like read(0,&buff, SIZE);
Pipes are "invisible" files allocated and mapped to the root file system.
(a version of WYSE Unix used to have a possibility to define the file
system used for pipes. That was extremely popular trick for benchmarking,
especially when PIPEFS was pointing to a solid state disk device. A company
that I worked for  long, long time ago used to have a small solid state 
device to which PIPEFS would be pointed and on which I would put redo log files.
Benchmarks against other manufacturers were great!). Unix (Linux) kernel will
usually allow pipes to grow few blocks before the pipe must be read. I should 
go 
and look for that part of Linux kernel, but I'm not up to the task tonight.
Hasta manana. I'll be back! (imagine me in a black leather jacket, with shades 
on my nose). 

> 
> As I saw from your trace, shell uses pipe() to create the pipe file
> descriptors for passing on data between processes.
> What if I create a pipe manually using mknod and run my two processes
> manually, does the data streaming work exactly the same way that with
> shell-generated pipe?


It probably will have the same effect, if you do it right, but why would 
you do it? Real programmers don't use tools provided by shell? It's called 
"reinventing the wheel". 


-- 
Mladen Gogala
Oracle DBA



Note:
This message is for the named person's use only.  It may contain confidential, 
proprietary or legally privileged information.  No confidentiality or privilege 
is waived or lost by any mistransmission.  If you receive this message in 
error, please immediately delete it and all copies of it from your system, 
destroy any hard copies of it and notify the sender.  You must not, directly or 
indirectly, use, disclose, distribute, print, or copy any part of this message 
if you are not the intended recipient. Wang Trading LLC and any of its 
subsidiaries each reserve the right to monitor all e-mail communications 
through its networks.
Any views expressed in this message are those of the individual sender, except 
where the message states otherwise and the sender is authorized to state them 
to be the views of any such entity.

----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: