named pipes


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting named pipes
# 1  
Old 09-11-2007
named pipes

How to have a conversation between 2 processes using named pipes?
# 2  
Old 09-11-2007
A very simple example... Open a shell and type:

Code:
mknod myfifo p
echo "test" > myfifo

At this point the shell hangs, because the fifo is waiting to be read.
So, open a second shell and type:

Code:
cat myfifo

The command reads (and empties) the pipe, you will see the output "test" and the first shell will return to the prompt.
# 3  
Old 09-12-2007
What is the need for "p" after myfifo? what is it meant for?
# 4  
Old 09-12-2007
Quote:
Originally Posted by kanchan_agr
How to have a conversation between 2 processes using named pipes?
pipes !!

command1 | command2

means the o/p of command1 will be given as an input to command2.
Ex: grep "abc" file1 | wc -l
Means the o/p of grep command will be given to wc -l as input to count the no. of lines where "abc" has found in the file1

Is that you were looking for ?? If not, then explain your Q, once again !!


Thnks. !! Smilie
# 5  
Old 09-12-2007
Quote:
Originally Posted by varungupta
pipes !!

command1 | command2

means the o/p of command1 will be given as an input to command2.
Ex: grep "abc" file1 | wc -l
Means the o/p of grep command will be given to wc -l as input to count the no. of lines where "abc" has found in the file1

Is that you were looking for ?? If not, then explain your Q, once again !!


Thnks. !! Smilie
And I must say...every command is treated as a saperate process with uniqueue process id. hence in the above example, there were 2 processes linked using pipe.
# 6  
Old 09-12-2007
Quote:
Originally Posted by royalibrahim
What is the need for "p" after myfifo? what is it meant for?
mknod is the unix command for creating special files. A pipe is a type of special file, and with the "p" option you tell mknod to create a FIFO (aka named pipe).

varungupta has explained the behaviour of normal command piping. In this case, the OS creates a temporary file for doing the work (a pipe), but you cannot reference explicitly this pipe by name, because is managed internally by the OS.
If you specifically need to put in communication two or more processes through NAMED pipes, you have to create a FIFO with mknod as explained before. In this manner you can reference explicitly the file on disk.

Generally, named pipes are used in the cases where a specific command line utility doesn't accept pipes as input, and you are forced to pass a phisical file to the utility as the input data. For these situations, named pipes are the answer.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Dialog with an external program using named pipes

Dear community, I communicate with an external program (maxima) using named pipes. If I use a text file to capture the output (maxima > out.txt) i can see the programs answer directly after the input written into the file. But if bypass the output into a named pipe (maxima > pipe) and capture it... (1 Reply)
Discussion started by: Pustekuchen
1 Replies

2. Homework & Coursework Questions

C Program to search and read all named pipes in current directory

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Write a C program to search the current directory for all pipes. 1. It will print the pipe... (2 Replies)
Discussion started by: natwickley
2 Replies

3. UNIX for Advanced & Expert Users

Named pipes using MKS Toolkit

I'm not sure whether or not this question really belongs in this forum and will accept rebuke should I have mistakenly put it in the wrong place (hopefully the rebuke will be accompanied by an answer, though) I wish to implement named pipe communication between two process using MKS Toolkit. I... (2 Replies)
Discussion started by: ArndW
2 Replies

4. Shell Programming and Scripting

Temporary named pipes in Hpux Kornshell

Tried the following on Hpux 11.11, using both ksh, and dtksh $diff <(sort file1) <(sort file2) $ ksh: syntax error: `(' unexpected Strange thing is I tried the same command under RHEL5 using ksh 93 and it works fine. Does anyone know if this is possible on HPUX without the use of... (0 Replies)
Discussion started by: fire!
0 Replies

5. UNIX for Dummies Questions & Answers

Named Pipes

hi, i am working on a script for oracle export, m using a parameter file... i want to compress the dump file that is generated.. in my script following is the code i have written. i am not able to generata .gz file mknod /tmp/exp_tesd1_pipe p gzip -cNf... (4 Replies)
Discussion started by: saharookiedba
4 Replies

6. HP-UX

remove named pipes

Hi, Please help me on this. I am creating a named pipe in a kshell script. I am using mkfifo pipe_name command to create the pipe. I want to remove the named pipe after my work is completed. How can i do that. (8 Replies)
Discussion started by: chintapalli001
8 Replies

7. UNIX for Advanced & Expert Users

tee into 2 named pipes

The following code does not work (zsh, Solaris), but works without the first line (files instead of pipes) :confused: mkfifo p1 p2 echo "Hello" | tee p1 > p2 & paste p1 p2 I would high appreciate any help to fix it. (9 Replies)
Discussion started by: zzol
9 Replies

8. Shell Programming and Scripting

FIFO named pipes

Hi...Can anyone please guide me on FIFO Pipes in UNIX.I have lerant things like creating fifo pipes,using them for reads and writes etc.I want to know what is the maximum amount of memory that such a pipe may have? Also can anyone guide me on where to get info on this topic from? (1 Reply)
Discussion started by: tej.buch
1 Replies

9. Filesystems, Disks and Memory

PIPEs and Named PIPEs (FIFO) Buffer size

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

10. Shell Programming and Scripting

named pipes

Hi I am having trouble with a script to export individual schemas to tape from an oracle database. Basicaly I need to export each shema through a pipe with compression and store each shema name in a file with the relevant tape marker. (4 Replies)
Discussion started by: truma1
4 Replies
Login or Register to Ask a Question