06-27-2013
A pipe "breaks" if the reading end closes first -- next time anything calls write() on the write-end, it will be given the SIGPIPE cleanup signal and die. There's no mechanism for the opposite direction.
10 More Discussions You Might Find Interesting
1. HP-UX
Can some one point this UNIX newbie to a web site or directions on the steps needed to break a mirror in HP-UNIX to change a bad hard drive. (4 Replies)
Discussion started by: egress1
4 Replies
2. Linux
Hi ,
I am running this script ( pasting only error code ) to generate some ddl definition for tables . But what I want is to break out of the db2look part when the base_table is not like DIM_$TN or FACT_$TN . After this it should come back to while loop to read the next TN . I read the other... (3 Replies)
Discussion started by: capri_drm
3 Replies
3. Shell Programming and Scripting
My input file is like
USER_WORK.ABC
USER_WORK.DEF
I want output file like
ABC
DEF (4 Replies)
Discussion started by: scorp_rahul23
4 Replies
4. Shell Programming and Scripting
I have the following command in a Bash shell script:
who | grep -w $1 | some other commands
If grep fails, an error message is displayed. How do I test if grep fails and still be able to pipe it's output to the rest of the commands?
I have the following solution:
a=`who | grep -w $1`... (3 Replies)
Discussion started by: oinkl
3 Replies
5. Shell Programming and Scripting
Hey,
I have to take one CSV file and break into more files. Let's I have a file prices.csv and the data in the file like
1,12345
1,34567
1,23456
2,67890
2,77720
2,44556
2,55668
10,44996
based on the first column, I want to create files. in this example 1 is repeated three times... (12 Replies)
Discussion started by: bond2222
12 Replies
6. Shell Programming and Scripting
I have a main script with while loop having for loop inside. Again in for loop based on if condition few functions will be called. So when a function is called for certain condition it should come out from the main for loop and should continue with while loop.
Let me explain with example here:
I... (6 Replies)
Discussion started by: vpv0002
6 Replies
7. Shell Programming and Scripting
Dear Friends,
Here I need your guidance once again.
I have for loop which check all files in a folder for a particular string. If the string is found in a file it returns value other than 0 else returns 0 value in variable t2.
At times the string which we are looking for is in first file... (1 Reply)
Discussion started by: anushree.a
1 Replies
8. Shell Programming and Scripting
Hi All ,
Is there any way to replace the pipe ( | ) with the broken pipe (0xA6) in unix (1 Reply)
Discussion started by: saj
1 Replies
9. UNIX for Dummies Questions & Answers
hi,
My input is:
123
1234|123|123|123
123|123|456
123|123|12
12
Expected output is:
123
1234|123
123|123
123|123
456
123|123
12 (1 Reply)
Discussion started by: pandeesh
1 Replies
10. Shell Programming and Scripting
Hi guys,
I need to know how i can ignore Pipe '|' if Pipe is coming as a column in Pipe delimited file
for eg:
file 1:
xx|yy|"xyz|zzz"|zzz|12...
using below awk command
awk 'BEGIN {FS=OFS="|" } print $3
i would get xyz
But i want as :
xyz|zzz to consider as whole column... (13 Replies)
Discussion started by: rohit_shinez
13 Replies
PIPE(2) BSD System Calls Manual PIPE(2)
NAME
pipe -- 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() function creates a pipe, which is an object allowing unidirectional data flow, and allocates a pair of file descriptors. The
first descriptor connects to the read end of the pipe, and the second connects to 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 whose read or write end has been 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 pipe2() function behaves exactly like pipe() only it allows extra flags to be set on the returned file descriptor. The following flags
are valid:
O_CLOEXEC Set the ``close-on-exec'' property.
O_NONBLOCK Sets non-blocking I/O.
O_NOSIGPIPE
Return EPIPE instead of raising SIGPIPE.
RETURN VALUES
On successful creation of the pipe, zero is returned. Otherwise, a value of -1 is returned and the variable errno set to indicate the error.
ERRORS
The pipe() and pipe2() calls will fail if:
[EFAULT] The fildes buffer is in an invalid area of the process's address space. The reliable detection of this error cannot be
guaranteed; when not detected, a signal may be delivered to the process, indicating an address violation.
[EMFILE] Too many descriptors are active.
[ENFILE] The system file table is full.
pipe2() will also fail if:
[EINVAL] flags is other than O_NONBLOCK or O_CLOEXEC.
SEE ALSO
sh(1), fork(2), read(2), socketpair(2), write(2)
STANDARDS
The pipe() function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'').
HISTORY
A pipe() function call appeared in Version 6 AT&T UNIX. The pipe2() function is inspired from Linux and appeared in NetBSD 6.0.
BSD
January 23, 2012 BSD