11-07-2010
Playing with the named pipe on the shell first is instructional (mknod path p). One party needs to be opening to read before one opens to write or one read may get many write. There is no wait, just blocking. Beware ccc>pipe as your login hangs, do (xxx >pipe)& after (yyy <pipe)&.
Named pipes are more a client-server or shell thing, as pipe() suffices for fork()/exec(), and popen() makes life simpler.
Last edited by DGPickett; 11-07-2010 at 06:37 AM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
In exec function say when i would like to remove the files
exec rm{}\;
Why is this "\" needed immediately after {} and what if i dont give it?
TIA,
Nisha (1 Reply)
Discussion started by: Nisha
1 Replies
2. UNIX for Dummies Questions & Answers
Gurus,
I did my research (on google, this site and my local library) but I am *still* lost. I am trying to teach myself about `named pipes` playing around with MKFIFO (Why not?).
(1) It seems MKNOD is reserved to ROOT whereas MKFIFO is accessible to all users. Am I correct? If the answer is... (20 Replies)
Discussion started by: alan
20 Replies
3. UNIX for Advanced & Expert Users
I have read that exec "replaces the current process with a new one".
So I did
$ exec ls
and after this executed, my shell disappeared. I am assuming that my shell had PID xyz, and when I did exec ls, this ls got pid xyz, and when it terminated, there was no more shell process running, and... (5 Replies)
Discussion started by: JamesByars
5 Replies
4. Shell Programming and Scripting
can any one pls explain the meaning of
exec 1<&5 ?? its urgent (2 Replies)
Discussion started by: santosh1234
2 Replies
5. Shell Programming and Scripting
Hi all,
I had an issue regarding use of `` or exec in perl . `` are considered to be unsafe. Why? In my case an user would be giving some parameters as input and I will form an command of it and execute it using ``. It is important to capture output as i have to parse the output. As well as I need... (0 Replies)
Discussion started by: bharadiaam
0 Replies
6. Programming
Hello guys!
I am doing a project for the university and I have to do that a process has to create several children through fork(). The father process sends a pathname to each one through exec and the children must send to the father a list with the files from each directory.
The father is... (1 Reply)
Discussion started by: dano88
1 Replies
7. UNIX for Advanced & Expert Users
Hi,
on AIX 6.L
I want to copy the result of grep -v to test directory then :
`hostname`@oracle$ls -l | grep -v RINT -exec cp {} test
grep: can't open -exec
grep: can't open cp
grep: can't open {}
test:°`.
Can you help me ?
Thank you. (3 Replies)
Discussion started by: big123456
3 Replies
8. UNIX for Dummies Questions & Answers
Hi,
i don't understand this part of one script
exec >> $Log_File 2>&1 (1 Reply)
Discussion started by: messi777
1 Replies
9. UNIX for Advanced & Expert Users
Hi,
I need to delete the last N days file using find.
I am trying to use
find . -mtime -10 -print
which lists down required files.
but when i use
find . -mtime -10 -exec ls -lrt {} \;
it gives me all files in the directory including the required files but the required files... (7 Replies)
Discussion started by: v_m1986
7 Replies
10. Shell Programming and Scripting
I have the following bash script lines in a file named test.sh.
#!/bin/bash
#
# Write Date to cron.log
#
echo "Begin SSI Load $(date +%d%b%y_%T)"
#
# Get the latest rates file for processing.
#
d=$(ls -tr /rms/data/ssi | grep -v "processed" | tail -n 1)
filename=$d
export filename... (3 Replies)
Discussion started by: ginowms
3 Replies
PIPE(2) System Calls Manual PIPE(2)
NAME
pipe - create an interprocess communication channel
SYNOPSIS
pipe(fildes)
int fildes[2];
DESCRIPTION
The pipe system call creates an I/O mechanism called a pipe. The file descriptors returned can be used in read and write operations. When
the pipe is written using the descriptor fildes[1] up to 4096 bytes of data are buffered before the writing process is suspended. A read
using the descriptor fildes[0] will pick up the data.
It is assumed that after the pipe has been set up, two (or more) cooperating processes (created by subsequent fork calls) will pass data
through the pipe with read and write calls.
The shell has a syntax to set up a linear array of processes connected by pipes.
Read calls on an empty pipe (no buffered data) with only one end (all write file descriptors closed) returns an end-of-file.
Pipes are really a special case of the socketpair(2) call and, in fact, are implemented as such in the system.
A signal is generated if a write on a pipe with only one end is attempted.
RETURN VALUE
The function value zero is returned if the pipe was created; -1 if an error occurred.
ERRORS
The pipe call will fail 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.
SEE ALSO
sh(1), read(2), write(2), fork(2), socketpair(2)
BUGS
Should more than 4096 bytes be necessary in any pipe among a loop of processes, deadlock will occur.
4th Berkeley Distribution August 26, 1985 PIPE(2)