12-21-2006
Position? It's a pipe.
I've thought of lots of applications for this idea, but the original one was a sort of temporary automatic buffer. One process produces data and writes it to the next, the next buffers it, the third reads from the buffer. When the buffer bottoms out, the process joins the input and output pipes together then quits.
9 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
Hello!
How I can increase or decrease predefined pipe buffer size?
System FreeBSD 4.9 and RedHat Linux 9.0
Thanks! (1 Reply)
Discussion started by: Jus
1 Replies
2. Shell Programming and Scripting
Hi,
Can the cd command be invoked using pipes???
My actual question is slightly different. I am trying to run an executable from different folders and the path of these folders are obtained dynamically from the front end. Is there a way in which i can actually run the executable... (2 Replies)
Discussion started by: Sinbad
2 Replies
3. Shell Programming and Scripting
I'm a begginer with scripting...
Have a script that pulls check information data. There are multiple lines for each check. ALL the info is the same on the line EXCEPT the charges. ie: same check number, same payee, same patient, same check date, DIFFERENT CHARGE. I need to total the charges... (0 Replies)
Discussion started by: tdavenpo
0 Replies
4. UNIX for Dummies Questions & Answers
Hi
How do I direct the output from ls to for example grep a in C. I am not asking for the whole shell implementation.
If I write ls|grep myfile in the shell. How is the output sent from ls to the input grep. whit int pipe(pipe); We create the pipe. I and I guess we use dup2(old... (4 Replies)
Discussion started by: isato
4 Replies
5. Programming
Hello all, I am trying to learn more about programming Unix pipes in C.
I have created a pipe that does od -bc < myfile | head
Now, I am trying to create od -bc < myfile | head | wc
Here is my code, and I know I might be off, thats why I am here so I can get some clarification.
#include... (1 Reply)
Discussion started by: petrca
1 Replies
6. Windows & DOS: Issues & Discussions
i have an "old" laptop with 84gb used space, 203gb free, running 32bit Windows Vista.
i've tried all defragmenting programs i could find and though some offer Free Space Defrag, they don't seem to take into account where on the disk to consolidates the space to.
what i am trying to achieve is... (4 Replies)
Discussion started by: Sterist
4 Replies
7. Shell Programming and Scripting
I have a script which checks for swap usage of the unix server.
A cron job has been created to execute this script every hour and send the output via mail.
This output is only required for a particular duration and it can range anywhere from 6 hours to 10 hours. So we are commenting out the... (1 Reply)
Discussion started by: kiran1112
1 Replies
8. Shell Programming and Scripting
Please assist with the following.
I have readings R1, R2,..Rn from plants from different fields , sometimes replicated. I need to first consolidate the replicates by their mean value per plant per field. Then I need to reformat the data by partially transposing it.
The missing values... (3 Replies)
Discussion started by: jianp83
3 Replies
9. Shell Programming and Scripting
Dears,
i am stuck here
i have 3 scripts running at one time and all the three scripts finish at different time and each script generate 1 file with different name. so i will have three files.
i dnt know which script finish first
i want to have a script which check if all the there files are... (6 Replies)
Discussion started by: mirwasim
6 Replies
pipe(2) System Calls Manual pipe(2)
Name
pipe - create an interprocess channel
Syntax
include <limits.h> /*Definition of PIPE_MAX*/
pipe(fildes)
int fildes[2];
Arguments
fildes Passing an address as an array of two integers into the system call.
Description
The system call creates an I/O mechanism called a pipe. The file descriptors returned can be used in and operations. Their integer values
will be the two lowest available at the time of the function call. The O_NONBLOCK and FD_CLOEXEC flags will be clear on both file descrip-
tors.
When the pipe is written using the descriptor fildes[1], up to PIPE_MAX bytes of data are buffered before the writing process is suspended.
A read using the descriptor fildes[0] picks up the data.
It is assumed that after the pipe has been set up, two (or more) cooperating processes (created by subsequent calls) pass data through the
pipe with and calls.
The shell has a syntax to set up a linear array of processes connected by pipes.
For further information on how and calls behave with pipes, see the and reference pages.
A signal is generated if a write on a pipe with only one end is attempted.
Restrictions
Should more than 4096 bytes be necessary in any pipe among a loop of processes, deadlock may occur.
The underlying implementation of pipes is no longer socket based, but rather implemented through the file system. Any application that
needs socket functionality from pipes should use the system call.
Return Values
The function value zero is returned if the pipe was created; -1 if an error occurred.
Diagnostics
The call fails if:
[EMFILE] Too many descriptors are active.
[ENFILE] The system file table is full.
[EFAULT] The fildes buffer is in an invalid area of the process's address space.
Environment
Differs from the System V definition in that ENFILE is not a possible error condition.
See Also
sh(1), fork(2), read(2), socketpair(2), write(2)
pipe(2)