Sponsored Content
Top Forums Shell Programming and Scripting Using Named pipe in shell script Post 302553899 by sudvishw on Friday 9th of September 2011 06:30:30 AM
Old 09-09-2011
Using Named pipe in shell script

Hi,
I want to use a Named pipe to get input from a growing file for further processing. When I prototype this scenario using a while loop, the data is not written to the named pipe.

This the script I use to get data into the Named pipe:
Code:
#!/bin/ksh
mkfifo pipe
while (( n <= 10 ))
do
echo hi >> pipe
sleep 1
(( n ++ ))
echo $n
done

I have not used Named pipe before. I am not sure what I am missing. Please help.

Thanks.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

IPC using named pipe

Hi All, I am facing a vague issue while trying to make two process talk to each other using named pipe. read process ========= The process which reads, basically creates FIFO using mkfifo - ret_val = mkfifo(HALF_DUPLEX, 0666);) func. It then opens the pipe using open func - fd =... (1 Reply)
Discussion started by: sharanbr
1 Replies

2. Programming

IPC using named pipe

Hi All, I am facing a vague issue while trying to make two process talk to each other using named pipe. read process ========= The process which reads, basically creates FIFO using mkfifo - ret_val = mkfifo(HALF_DUPLEX, 0666) func. It then opens the pipe using open func - fd = open... (2 Replies)
Discussion started by: sharanbr
2 Replies

3. UNIX for Dummies Questions & Answers

Named PIPE

Gurus, I've a File Transaction Server, which communicates with other servers and performs some processing.It uses many Named PIPE's. By mistake i copied a named PIPE into a text file. I heard that PIPE files shouldn't be copied.Isn't it? Since it's a production box, i'm afraid on... (2 Replies)
Discussion started by: Tamil
2 Replies

4. UNIX for Dummies Questions & Answers

Named Pipe contents to a file

I want to copy the contents of a named pipe to a file. I have tried using: cat pipe.p >> transcript.log but I have been unsuccessful, any ideas? (4 Replies)
Discussion started by: carl_vieyra
4 Replies

5. UNIX for Advanced & Expert Users

will a named pipe always be size 0 on filesystem?

I did cat < myFile >> myPipe I was hoping that if I did ls -l, myPipe would now be holding the contents of myFile, and would be the same size. But it was 0. Also strange was that when I did the command above, cat did not return control back to the shell. Why? thanks (4 Replies)
Discussion started by: JamesByars
4 Replies

6. UNIX for Dummies Questions & Answers

Filtering mail into a named pipe

Hello, On my machine, all mail is stored in my /var/spool/mail. IS there a way to direct all mail that goes there into a namep pipe? Thank you, Dado (4 Replies)
Discussion started by: dadoprso
4 Replies

7. Shell Programming and Scripting

Named pipe performance

Hi, I am getting data into a Named pipe. Does Named pipe have any size restriction; I know it does not have any storage and it just passes on the data to the next process. I want to know, if there will be a difference in the Named pipe performance if the data input is more. (I am using DB2... (1 Reply)
Discussion started by: sudvishw
1 Replies

8. Programming

Named pipe behavior in Linux

Hi All ! I try to collect importent events from syslog and in my syslog conf, there is something like this: *.* |/logs/ipes/SLpipe1 I have a program, which opens this pipe and reads the messages from it. But how this pipe works ? Where can I probably read something about the details,... (3 Replies)
Discussion started by: mabra
3 Replies

9. UNIX for Dummies Questions & Answers

Named pipe hanging?

Ok, I can't seem to figure this out or find anything on the web about this. I'm on Sun Solaris, UNIX. I have the following test script: #!/bin/ksh touch test.file LOG=./tmp.log rm -f ${LOG} PIPE=./tmp.pipe mkfifo ${PIPE} trap "rm -f ${PIPE}" EXIT tee -a ${LOG} < ${PIPE} & ... (17 Replies)
Discussion started by: Ditto
17 Replies

10. Shell Programming and Scripting

How to test named pipe file?

Hi ALL, How can I test a given file name exists and if it is a named pipe file in shell script ? Thanks............ (2 Replies)
Discussion started by: mycode.in
2 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)
All times are GMT -4. The time now is 12:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy