11-17-2011
ls and find - two main ways to get file information - rely on stat() which is a system call that gets information like the size of a file, file permissions, etc.
The stat call is guaranteed to return a size ONLY if the file in question is a symbolic link or if the file is a regular file. It does not work on pipes.
This means that for most Linux implementations you cannot identify non-empty pipes.
What Linux are you running?
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
How can I remove a non empty directory. ' rmdir directory_name ' complains that the directory is not empty. The same problem happens with ' rmdir directory_name/* '
Thanks (2 Replies)
Discussion started by: babayeve
2 Replies
2. UNIX for Advanced & Expert Users
How to delete nonempty directory?
Thanks (2 Replies)
Discussion started by: xli3
2 Replies
3. Shell Programming and Scripting
Hi,
Suppose i have a inputfile in csv format.
How to use awk to count 'the number of nonempty columns in each row' minus one, and add the value as a new column in the end
For cosmetic reason, it's even better to include a descriptive label for the last column in the first row.
for... (2 Replies)
Discussion started by: grossgermany
2 Replies
4. Shell Programming and Scripting
Hi suppose I have a csv file like this
count,1977,1978,1979
usa, , , blue
japan, red, yellow,green
india, , yellow,blue
china, blue, yellow, green
I want the output to be(replace everything, including empty data, with the most recent data):
... (1 Reply)
Discussion started by: grossgermany
1 Replies
5. UNIX for Dummies Questions & Answers
uname -a
SunOS mypc 5.10 Generic_141414-07 sun4v sparc SUNW,SPARC-Enterprise-T2000
uname -a
SunOS mypc 5.10 Generic_144488-07 sun4v sparc SUNW,SPARC-Enterprise-T5220
find . -name "*.cer" -exec keytool -v -list -printcert -file {} \; | grep -i "Aug 03"
Valid from: Mon Jan 29 00:00:00 GMT... (16 Replies)
Discussion started by: shifahim
16 Replies
6. Shell Programming and Scripting
Korn Shell in AIX 6.1
I want to print the below shown pipe (|) separated list line by line.
line=es349889|nhb882309|ts00293|snh03524|bg578835|bg37900|rnh00297|py882201|sg175883
for i in line
do
echo "Hello $line "
done
I wanted to execute the above for loop. But i can't even set the... (3 Replies)
Discussion started by: polavan
3 Replies
7. Shell Programming and Scripting
Hey fellas,
I wrote an script which its output is like this:
a 1 T
a 1 T
a 2 A
b 5 G
b 5 G
b 5 G
I wanna print $1 $2 and the total number of $2 value as the third column and after that $3. Sth like this:
a 1 2 T
a 2 1 A
b 5 3 G
I know how to do it with a given input... (4 Replies)
Discussion started by: @man
4 Replies
8. Shell Programming and Scripting
I have code fragment like
{
aa
bb
cc
} > $LOG
aa bb cc, all call function "ff", I want "ff" to print on the screen,but others do not print on the scree, is there a method? I can't use "tee", becasue tee I meet the write "error"
ff()
{
echo "hello"
} (2 Replies)
Discussion started by: yanglei_fage
2 Replies
9. Shell Programming and Scripting
cat file |grep -v "xx" | grep -v "yy" |grep -v "zz" (3 Replies)
Discussion started by: yanglei_fage
3 Replies
10. Red Hat
Hi all,
as i have multiple broken pipes on ssh sessions,
i need to find out after how much time it happens,
ssh root@testServer
root@testServer's password:
ssh:notty
Last login: Thu Apr 6 06:41:16 2017 from 10.10.10.2
#
but when broke pipe happen i don't have any idea after how much... (3 Replies)
Discussion started by: charli1
3 Replies
pipe(2) System Calls Manual pipe(2)
Name
pipe - create an interprocess channel
Syntax
include <limits.h> /*Definition of PIPE_MAX*/
pipe(fildes)
int fildes[2];
Arguments
fildes Passing an address as an array of two integers into the system call.
Description
The system call creates an I/O mechanism called a pipe. The file descriptors returned can be used in and operations. Their integer values
will be the two lowest available at the time of the function call. The O_NONBLOCK and FD_CLOEXEC flags will be clear on both file descrip-
tors.
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] picks up the data.
It is assumed that after the pipe has been set up, two (or more) cooperating processes (created by subsequent calls) pass data through the
pipe with and calls.
The shell has a syntax to set up a linear array of processes connected by pipes.
For further information on how and calls behave with pipes, see the and reference pages.
A signal is generated if a write on a pipe with only one end is attempted.
Restrictions
Should more than 4096 bytes be necessary in any pipe among a loop of processes, deadlock may occur.
The underlying implementation of pipes is no longer socket based, but rather implemented through the file system. Any application that
needs socket functionality from pipes should use the system call.
Return Values
The function value zero is returned if the pipe was created; -1 if an error occurred.
Diagnostics
The call fails 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.
Environment
Differs from the System V definition in that ENFILE is not a possible error condition.
See Also
sh(1), fork(2), read(2), socketpair(2), write(2)
pipe(2)