08-17-2006
If you have opened the pipe via pipe system cmd then you must have access to 2 file descriptors which are read and write ends for pipe. You can write on the write end of pipe using the 'write' system call.
A better help would be
Beej's guide for IPC.
regards
Apoorva Kumar
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
anybody can help, plz:
I want to pass the output of "ls" to "grep":
ftp -n host <<!
USER user passwd
ls
bye
! | grep file
exit 0
It does not work!!
Any idea??
Sami (7 Replies)
Discussion started by: sami98
7 Replies
2. UNIX for Dummies Questions & Answers
I am using grep and I want the output to go into two files without going to the screen. I used tee to get the output into two files, but it is also putting the output on the screen which i do not want. Can this be fixed. (2 Replies)
Discussion started by: NobluesFDT
2 Replies
3. Shell Programming and Scripting
I have access to an AIX 5.3 box, where I need to write a report to:
/tmp/report
The report is larger then the amount of available disk space on the box.
There's about 1 GB of free space, for a 1.5 GB report.
The report is destined for another box (10.0.0.2) anyway, which has enough free... (2 Replies)
Discussion started by: mirx
2 Replies
4. UNIX for Dummies Questions & Answers
Hi,
I am having a list of directories with different login id's. My requirement is that i need to list the directories of my id and need to delete them. So i am using following code
ls -ltr ¦ grep userid ¦ rm -rf
But this is not working. So is there any way of doing it. Please note... (3 Replies)
Discussion started by: sarbjit
3 Replies
5. UNIX for Dummies Questions & Answers
I can use pipe output to a file. For example
./somescript.sh > output.txt
But for example if the output from ./somescript.sh is slow. like if it prints one line every minute then output.txt is not updated every minute. Lines are written to output.txt in one go, hence have to wait for the whole... (2 Replies)
Discussion started by: kevincobain2000
2 Replies
6. UNIX for Dummies Questions & Answers
I have a script that finds all sffs and extracts them into .fastq file types. What I need to do is change the .fastq to .fasta using the below script. How can I change the input.fastq and output.fasta to mirror the file's name? Would I use an array and use the default iterator?
#!/bin/bash
... (3 Replies)
Discussion started by: jrymer
3 Replies
7. Shell Programming and Scripting
Hi All,
i have the following command
df|awk '{print $5}'|grep /| egrep -v '^/$|/usr|/opt|/var/log|/home|/tmp'
output looks like:
/filesystem/number1
/filesystem/number2
/filesystem3
/possiblymoreoutput
i want the output to look like the below (either in a file or to output to... (3 Replies)
Discussion started by: Tommyk
3 Replies
8. Shell Programming and Scripting
I'd like to have the output from this script piped to a text file that has the date at the beginning of it. For example, my ideal would be something like this
$./run_script.sh
$ls *.out
2013-Feb-26-output_filename.out
Here's the code I'm using.
#! /bin/ksh
DAT=`date '+%Y-%b-%d'`
for... (2 Replies)
Discussion started by: DustinT
2 Replies
9. Shell Programming and Scripting
I'm trying to get an output to echo on the next line in a given color and outputted next to a label.
Sorry if that's a bit vague, see below.
#!/bin/bash
YELLOW=$(tput setaf 3 && tput bold)
echo -n 'plaintext' | openssl md2 || read hash
echo "$YELLOW Hash:$hash"
But I can't seem to get the... (2 Replies)
Discussion started by: 3therk1ll
2 Replies
10. Shell Programming and Scripting
Hi,
I am trying to search for a string in a file and print all the matched lines as pipe delimited format.
My command is
cat m_gid_trans.XML|grep -i '<TABLEATTRIBUTE NAME ="Lookup cache directory name"'
The output I am getting is
<TABLEATTRIBUTE NAME ="Lookup cache directory name"... (4 Replies)
Discussion started by: sampoorna
4 Replies
PIPE(2) BSD System Calls Manual PIPE(2)
NAME
pipe, pipe2 -- create descriptor pair for interprocess communication
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
pipe(int fildes[2]);
int
pipe2(int fildes[2], int flags);
DESCRIPTION
The pipe() system call creates a pipe, which is an object allowing bidirectional data flow, and allocates a pair of file descriptors.
The pipe2() system call allows control over the attributes of the file descriptors via the flags argument. Values for flags are constructed
by a bitwise-inclusive OR of flags from the following list, defined in <fcntl.h>:
O_CLOEXEC Set the close-on-exec flag for the new file descriptors.
O_NONBLOCK Set the non-blocking flag for the ends of the pipe.
If the flags argument is 0, the behavior is identical to a call to pipe().
By convention, the first descriptor is normally used as the read end of the pipe, and the second is normally the write end, so that data
written to fildes[1] appears on (i.e., can be read from) fildes[0]. This allows the output of one program to be sent to another program: the
source's standard output is set up to be the write end of the pipe, and the sink's standard input is set up to be the read end of the pipe.
The pipe itself persists until all its associated descriptors are closed.
A pipe that has had an end closed is considered widowed. Writing on such a pipe causes the writing process to receive a SIGPIPE signal.
Widowing a pipe is the only way to deliver end-of-file to a reader: after the reader consumes any buffered data, reading a widowed pipe
returns a zero count.
The bidirectional nature of this implementation of pipes is not portable to older systems, so it is recommended to use the convention for
using the endpoints in the traditional manner when using a pipe in one direction.
RETURN VALUES
The pipe() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate
the error.
ERRORS
The pipe() and pipe2() system calls will fail if:
[EMFILE] Too many descriptors are active.
[ENFILE] The system file table is full.
[ENOMEM] Not enough kernel memory to establish a pipe.
The pipe2() system call will also fail if:
[EINVAL] The flags argument is invalid.
SEE ALSO
sh(1), fork(2), read(2), socketpair(2), write(2)
HISTORY
The pipe() function appeared in Version 3 AT&T UNIX.
Bidirectional pipes were first used on AT&T System V Release 4 UNIX.
The pipe2() function appeared in FreeBSD 10.0.
BSD
May 1, 2013 BSD