05-24-2016
Quote:
Originally Posted by
aderamos12
Thanks for the reply.
Will it not be an endless loop if I will not put a counter to it? Or an end of file flag?
No! After the last line in your file is read, the next read will report that it found end-of-file. No special flags are needed. When you read from a regular file, and no more data is available, the read() system call will return 0 (no data available). When you read from a pipe and no more data is available at that moment, the read() system call will hang until more data is available (in which case it will return the data available at that time or the number of bytes requested, whichever is smaller) or all file descriptors open for writing to that pipe have been closed (in which case it will return 0).
The operating system knows how big a file is and won't return more data to the user than what exists in the file.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi everyone,
Ive got a quick question about the feasibility and any suggestions for a shell script. I can use sh or ksh, doesnt matter. Basically, Ive got an output file from a db2 command that looks like so:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL KEYS F4 F5 ... (3 Replies)
Discussion started by: rdudejr
3 Replies
2. Shell Programming and Scripting
Hi intelligent beings,
I am trying to write a script that
1. Accepts the following arguments:
store_number
div_number
user_id
div_code
2. Will read from a configuration file to get the Database
3. Use the div_code to determine which value to retrieve from the configuration file
... (1 Reply)
Discussion started by: dolo21taf
1 Replies
3. Shell Programming and Scripting
Hi,
Lets say I have a script "ss" which does this
read abc
echo $abc
read pqr
echo $pqr
Now if I want to pass and argument to only "abc" how do I do it.
If I do
echo "somevalue" | ss, it does not prompt for pqr and its value comes out as blank.
Any help is appreciated
Thanks
P (6 Replies)
Discussion started by: patjones
6 Replies
4. Shell Programming and Scripting
Hi all,
I am new to shell scripting.
I have dbf file and I need to convert it into csv file.
OR, can i read the fields from a .dbf file and OR seprate the records in dbf file and put into .csv or txt.
Actually in the .dbf files I am getting , the numbers of fields may vary in very record and... (6 Replies)
Discussion started by: gauara
6 Replies
5. Shell Programming and Scripting
Hi I am trying to write a shell script that is reading all the scripts in the current directory (currently 5) and is allowing me to run the scripts that is in the directory.
I want that this scripts asks te user to execute 1 of the listed scripts.
I have 4 sample scripts in the directory:... (8 Replies)
Discussion started by: I-1
8 Replies
6. Shell Programming and Scripting
hi all,
Currently in my system a user's password expires after 90 days and the last passsword change time is stored in an attribute pwdchange date. i need a linux script that read this attribute and add 89 days and send an email that the user password is expiring the next day.
i can store... (1 Reply)
Discussion started by: manankapoor
1 Replies
7. UNIX for Dummies Questions & Answers
I was analyzing the Disk read using hdparm utility.
This is what i got as a result.
# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 108 MB in 3.04 seconds = 35.51 MB/sec
# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3496 MB in 1.99 seconds = 1756.56 MB/sec... (1 Reply)
Discussion started by: pinga123
1 Replies
8. Shell Programming and Scripting
Hi
I am looking for an easy way to lock game mode (0) for everyone included op on a Minecraft server. It can be a script that every time a player changes game to 1 the script changes back to 0. What the player writes is visible in the java console. I am not good at script programming and my... (0 Replies)
Discussion started by: MyMorris
0 Replies
9. UNIX for Dummies Questions & Answers
cleanwork /saswork removes sas orphanded processes in the saswork directory. Subdirectories under sasem are sas94, sas92 and sasworks .
I am getting the following error messages:
1.
'/usr/bin/sudo -S apt-get update <~/opt/SiM/pos/ps/db_auth.cfg... (4 Replies)
Discussion started by: dellanicholson
4 Replies
10. Shell Programming and Scripting
Hello Unix Shell Script Experts,
I have a script that would mask the columns in .csv file or .txt file.
First the script will untar the .zip files from Archive folder and processes into work folder and finally pushes the masked .csv files into Feed folder.
Two parameters are passed
... (5 Replies)
Discussion started by: Mahesh G
5 Replies
PIPE(2) System Calls Manual PIPE(2)
NAME
pipe - create an interprocess communication channel
SYNOPSIS
#include <unistd.h>
int pipe(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 PIPE_MAX bytes of data are buffered before the writing process is suspended. A
read using the descriptor fildes[0] will pick up the data.
PIPE_MAX equals 7168 under Minix, but note that most systems use 4096.
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.
The signal SIGPIPE 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.
[ENOSPC] The pipe file system (usually the root file system) has no free inodes.
[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).
NOTES
Writes may return ENOSPC errors if no pipe data can be buffered, because the pipe file system is full.
BUGS
Should more than PIPE_MAX bytes be necessary in any pipe among a loop of processes, deadlock will occur.
4th Berkeley Distribution August 26, 1985 PIPE(2)