10-12-2005
UNIX Pipe
Hi ,
I want to understand how the PIPE works in unix . Precisely what I am doing is this .
1. Creating a Named PIPE with the command
mknod sqlldr.dat p
2. Directing a file output to the PIPE file in the background
cat abc > sqlldr.dat
3.SQL Loader in oracle is reading the data from this .
Now I want to undertsnad how it's really working ?
My concern is file abc is going to be a big one . Does this cause any memory problem
Links to how pipe works will be helfful
Does any body has a idea of reading a PIPE file from utl_file in oracle ?
10 More Discussions You Might Find Interesting
1. HP-UX
I would like to know if the following can be done.
route output from an sql select directly to a pipe and compress it at the same time.
regards
Albert (2 Replies)
Discussion started by: booyena1
2 Replies
2. Programming
I currently stuck on a simple program that requires unix pipe. I'm have never programmed with unix pipe before, so if anyone can point me to the right different will be greatly appreciated!
I'm suppose to write a program that the parent spawns many child processes and each of the child process... (1 Reply)
Discussion started by: meh
1 Replies
3. Shell Programming and Scripting
Could one of you shad some light on this:
I need to split the file by determining the record count and than splitting it up into 4 files. Please note, this is not a fixed record length but rather a "|" delimited file.
I am not sure as how to handle reminder/offset for the 4th file.
For... (4 Replies)
Discussion started by: ddedic
4 Replies
4. UNIX for Dummies Questions & Answers
Looking for examples/definition of what the term Pipe means in UNIX. Please provide answers and illustrations if possible or direction. Thanks!:) (5 Replies)
Discussion started by: dfrost126
5 Replies
5. UNIX for Advanced & Expert Users
I am pretty new to UNIX. My client has a requirement where in a directory we have some files with somewhat similar name
like test_XX.txt, test_XY.txt, test_XZ.txt, test_ZZ.txt, test_ZY.txt, test_ZX.txt, test_YY.txt......Out of these files
few files have 0 bytes. Is there a way where we can go... (7 Replies)
Discussion started by: RubinPat
7 Replies
6. Shell Programming and Scripting
I am trying to convert a txt file that includes one long string of data. The lines are separated with hex value 7C (for pipe).
I am trying to process this file using SQR (Peoplesoft) so I thought the easiest thing to do would be to replace the eol char with a CRLF in unix so I can just... (4 Replies)
Discussion started by: sfedak
4 Replies
7. UNIX for Dummies Questions & Answers
EDIT: Nevermind, called a friend who is good at this stuff and he figured it out :D
Hi all,
So I'm trying to teach myself to write programs for unix in c. I am currently creating a program, and I need to pass a struct through a pipe, but I can't figure out how.
The struct I want to pass... (0 Replies)
Discussion started by: twnsfn34
0 Replies
8. Shell Programming and Scripting
Hi
I am new to Unix Shell scripting have a requirement where I have to replace the "unix 1 byte delimiter" with the "pipe" separator and also remove any carriage returns and line feeds if any
The Source File
4 QFH Jungle Hill 32-34 City Road London SE23 3UX
the output should be ... (3 Replies)
Discussion started by: dJHa
3 Replies
9. Shell Programming and Scripting
I have created a fifo named pipe in solaris, which writes the content of a file, line by line, into pipe as below:
$ mkfifo namepipe
$ cat books.txt
"how to write unix code"
"how to write oracle code"
$ cat books.txt >> namepipe &
I have a readpipe.sh script which reads the named... (2 Replies)
Discussion started by: naveen mani
2 Replies
10. UNIX for Beginners Questions & Answers
Hi All,
I'm creating a program which reads millions of bytes from the PIPE and do some processing. As the data is more, the idea is to read the pipe parallely.
Sun Solaris 8
See the code below:
#!/bin/sh
MAXTHREAD=30
awk '{print $1}' metadata.csv > nvpipe &
while
do
... (3 Replies)
Discussion started by: mr_manii
3 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