03-02-2010
generally the errors will be printed to the stderr.
In the first case at first you are redirecting the output to logfile file directly.
At this stage both the stdout and stderr are redirect to the logfile.
Then only redirecting the stderr to stdout.
(0 for stdin, 1 for stdout and 2 for stderr)
In the second case you are redirecting the stderr to the stdout.
So the error message is getting printed in the stderr and the stdout is redirected to the logfile.
So the output is stored in the logfile.
Last edited by thillai_selvan; 03-02-2010 at 04:18 AM..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am trying to find a way to check the current status of a file. Such as some cron job processes are dependent on the completion of others. if a file is currently being accessed / modified or simply open state I will wait until it is done being processed before attempting the next process on that... (3 Replies)
Discussion started by: Gary Dunn
3 Replies
2. Windows & DOS: Issues & Discussions
hi all
how to find the file duplication in a windows 2000 server
as usual replies are sincerely appreciated.
thanks
raguram R (3 Replies)
Discussion started by: raguramtgr
3 Replies
3. UNIX for Dummies Questions & Answers
What is a file descriptor in Unix??
How to find a file descriptor of a file in Unix??
Does it have anything to do with the Inode numbers?? (3 Replies)
Discussion started by: rahulrathod
3 Replies
4. Shell Programming and Scripting
Hello All,
Im opening a file desciptor in perl and sending data using print CMD "$xyz".
is there a limit to the length of the string that I can give to this CMD at a time. (3 Replies)
Discussion started by: rimser9
3 Replies
5. UNIX for Dummies Questions & Answers
Hi
What the below path contains?
/proc/<pid>/fd (1 Reply)
Discussion started by: siba.s.nayak
1 Replies
6. Shell Programming and Scripting
I have a file, let's say 1.jpg, and I have a text file that contains a list of filenames I would like to duplicate 1.jpg as (i.e., 2.jpg, 3.jpg, 4.jpg, etc.). The filenames that I want to create are all on separate lines, one per line.
I'm sure there's a simple solution, but I'm not claiming to... (7 Replies)
Discussion started by: futurestar
7 Replies
7. Shell Programming and Scripting
I am trying to use one global declaration --> "exec 2>$ERR" to capture all stderr outputs that may occur anywhere in my script.
Then close it at the end of the script using --> "exec 2<&-"
I am using KSH on Solaris 8.
KSH Version M-11/16/88i
If I comment two "exec .." statements in the... (11 Replies)
Discussion started by: kchinnam
11 Replies
8. Shell Programming and Scripting
Hi,
I am trying to read a file line-by-line in a while loop, and perform some tasks which involves non-interactive SSH to a remote server. The code looks something like this --
#!/usr/bin/ksh
export myFile=/path/to/my/file.load
while read line
do
do something
## Adding the SSH... (2 Replies)
Discussion started by: Subu1987
2 Replies
9. Shell Programming and Scripting
Greetings.
I am happily using constructs like the following; I have set -x to show fine distinctions.
$ exec 4> afile
+ exec
+ 4> afile
$ print -u4 This is the first line in afileAs you can see from the -x expansion, the shell performed the exec command and redirected file descriptor to... (4 Replies)
Discussion started by: rpaskudniak
4 Replies
10. UNIX for Beginners Questions & Answers
I have a shell script with 2 run time arguments. During the execution if i got any error, then it needs to redirected to a error file and in console. Also both error and output to be redirected to a log file.
Error output is getting copied to err file and getting displayed in console too. But... (2 Replies)
Discussion started by: sarathy_a35
2 Replies
LEARN ABOUT REDHAT
stderr
STDIN(3) BSD Library Functions Manual STDIN(3)
NAME
stdin, stdout, stderr -- standard I/O streams
SYNOPSIS
#include <stdio.h>
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
DESCRIPTION
Under normal circumstances every Unix program has three streams opened for it when it starts up, one for input, one for output, and one for
printing diagnostic or error messages. These are typically attached to the user's terminal (see tty(4)) but might instead refer to files or
other devices, depending on what the parent process chose to set up. (See also the ``Redirection'' section of sh(1) .)
The input stream is referred to as ``standard input''; the output stream is referred to as ``standard output''; and the error stream is
referred to as ``standard error''. These terms are abbreviated to form the symbols used to refer to these files, namely stdin, stdout, and
stderr.
Each of these symbols is a stdio(3) macro of type pointer to FILE, and can be used with functions like fprintf(3) or fread(3).
Since FILEs are a buffering wrapper around Unix file descriptors, the same underlying files may also be accessed using the raw Unix file
interface, that is, the functions like read(2) and lseek(2). The integer file descriptors associated with the streams stdin, stdout, and
stderr are 0, 1, and 2, respectively. The preprocessor symbols STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO are defined with these values
in <unistd.h>.
Note that mixing use of FILEs and raw file descriptors can produce unexpected results and should generally be avoided. (For the masochistic
among you: POSIX.1, section 8.2.3, describes in detail how this interaction is supposed to work.) A general rule is that file descriptors
are handled in the kernel, while stdio is just a library. This means for example, that after an exec, the child inherits all open file
descriptors, but all old streams have become inaccessible.
Since the symbols stdin, stdout, and stderr are specified to be macros, assigning to them is non-portable. The standard streams can be made
to refer to different files with help of the library function freopen(3), specially introduced to make it possible to reassign stdin, stdout,
and stderr. The standard streams are closed by a call to exit(3) and by normal program termination.
SEE ALSO
sh(1), csh(1), open(2), fopen(3), stdio(3)
CONSIDERATIONS
The stream stderr is unbuffered. The stream stdout is line-buffered when it points to a terminal. Partial lines will not appear until
fflush(3) or exit(3) is called, or a newline is printed. This can produce unexpected results, especially with debugging output. The buffer-
ing mode of the standard streams (or any other stream) can be changed using the setbuf(3) or setvbuf(3) call. Note that in case stdin is
associated with a terminal, there may also be input buffering in the terminal driver, entirely unrelated to stdio buffering. (Indeed, nor-
mally terminal input is line buffered in the kernel.) This kernel input handling can be modified using calls like tcsetattr(3); see also
stty(1), and termios(3).
CONFORMING TO
The stdin, stdout, and stderr macros conform to ANSI X3.159-1989 (``ANSI C89''), and this standard also stipulates that these three streams
shall be open at program startup.
Linux 2.0 March 24, 1998 Linux 2.0