08-15-2009
Did you read up on what perror() does?
Quote:
Originally Posted by man perror
The perror() function finds the error message corresponding to the current value of the global variable errno and writes it, followed by a newline, to the standard error file descriptor. If the argument s is non-NULL and does not point to the null character, this string is prepended to the message string and separated from it by a colon and space (": "); otherwise, only the error message string is printed.
Since neither you nor any other function set errno, it's probably defaulted to zero, which means success.
If you want to output any error messages that stem from logical errors, I'd suggest writing them to stderr via fprintf.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
The following C++ code segment is not working in debug mode build on HP-UNIX machine. It is not printing "Hello World" message on the screen. While it is working fine in release mode build.
==============================================
class KLogStreamBuf : public streambuf {
public:... (0 Replies)
Discussion started by: heena
0 Replies
2. Solaris
Hello,
We have an application which runs on Windows 2000 that responds to prrint requests by anyone using RFC1179 protocol
on port 515.
We are getting an error message when submitting print requests
from Sun Solaris 9.
"Windows 2000 LPD Server Error: Specified printer does not exist"... (0 Replies)
Discussion started by: pauls
0 Replies
3. Programming
here the program gives a odd result:
#include <stdio.h>
int main(){
perror("first");
perror("next");
return 0;
}
result:
first: Success
next: Illegal seek
why? any resonable explanation? i found no information about this in man pages.
thanks in advance (2 Replies)
Discussion started by: ebd
2 Replies
4. Shell Programming and Scripting
Why isn't printing message?
1 #!/bin/sh
2
3 something(){
4 echo "Inside something"
5 echo $1 $2
6 }
7 val=$(something "Hello " "world")
But it prints.
1 #!/bin/sh
2
3 something(){
4 echo "Inside something"
5 echo $1 $2
6 }
7... (4 Replies)
Discussion started by: cola
4 Replies
5. Post Here to Contact Site Administrators and Moderators
Hia,
this is a very low priority request, but I am slightly annoyed by the behaviour of the tags in the message editor. They behave assymetric in the sense that the opening tag is introducing an empty line, and the closing tag is not, and can't be convinced to do otherwise. I know I am... (1 Reply)
Discussion started by: Andre_Merzky
1 Replies
6. UNIX for Dummies Questions & Answers
I have following problem with this code..
First time trough the main loop.....
perror gives ....blocked signal:success(all other times gives illlegal seek)
Should every time trought the main loop be success??
And the perror otside of main loop...didn't change mask:success
That line of code... (2 Replies)
Discussion started by: joker40
2 Replies
7. Programming
i am trying to use the perror function:
something like
perror("WRONG!!!");
but when i see the message in the terminal, it comes out like
WRONG!!! : Success
How can i change it to
WRONG!!! : WRONG!!!
well i just want to have my own custom message for the part after the colon... (1 Reply)
Discussion started by: omega666
1 Replies
8. Shell Programming and Scripting
Hello all,
I need to print all the lines before a specific string and print a custom message 2 lines after that.
So far I have managed to print everything up the string, inclusively, but I can't figure out how to print the 2 lines after that and the custom message.
My code thus far is:... (4 Replies)
Discussion started by: SEinT
4 Replies
9. Shell Programming and Scripting
Hello friends,
i have a perl script as below ...
for (0 ..$#values)
{
##want to print some message here in Report.txt file
print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt
}
I am able to get output of print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt
in... (2 Replies)
Discussion started by: harpal singh
2 Replies
10. Solaris
I'm have a script that I am creating and I want the dmesg command to only show output for the current day and the day before. What would be the command to make this work?
Thanks (8 Replies)
Discussion started by: MattyJ2009
8 Replies
LEARN ABOUT FREEBSD
strerror
STRERROR(3) BSD Library Functions Manual STRERROR(3)
NAME
perror, strerror, strerror_r, sys_errlist, sys_nerr -- system error messages
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
void
perror(const char *string);
extern const char * const sys_errlist[];
extern const int sys_nerr;
#include <string.h>
char *
strerror(int errnum);
int
strerror_r(int errnum, char *strerrbuf, size_t buflen);
DESCRIPTION
The strerror(), strerror_r() and perror() functions look up the error message string corresponding to an error number.
The strerror() function accepts an error number argument errnum and returns a pointer to the corresponding message string.
The strerror_r() function renders the same result into strerrbuf for a maximum of buflen characters and returns 0 upon success.
The perror() function finds the error message corresponding to the current value of the global variable errno (intro(2)) and writes it, fol-
lowed by a newline, to the standard error file descriptor. If the argument string is non-NULL and does not point to the null character, this
string is prepended to the message string and separated from it by a colon and space (``: ''); otherwise, only the error message string is
printed.
If the error number is not recognized, these functions return an error message string containing ``Unknown error: '' followed by the error
number in decimal. The strerror() and strerror_r() functions return EINVAL as a warning. Error numbers recognized by this implementation
fall in the range 0 < errnum < sys_nerr. The number 0 is also recognized, although applications that take advantage of this are likely to
use unspecified values of errno.
If insufficient storage is provided in strerrbuf (as specified in buflen) to contain the error string, strerror_r() returns ERANGE and
strerrbuf will contain an error message that has been truncated and NUL terminated to fit the length specified by buflen.
The message strings can be accessed directly using the external array sys_errlist. The external value sys_nerr contains a count of the mes-
sages in sys_errlist. The use of these variables is deprecated; strerror() or strerror_r() should be used instead.
SEE ALSO
intro(2), err(3), psignal(3)
STANDARDS
The perror() and strerror() functions conform to ISO/IEC 9899:1999 (``ISO C99''). The strerror_r() function conforms to IEEE Std 1003.1-2001
(``POSIX.1'').
HISTORY
The strerror() and perror() functions first appeared in 4.4BSD. The strerror_r() function was implemented in FreeBSD 4.4 by Wes Peters
<wes@FreeBSD.org>.
BUGS
The strerror() function returns its result in a static buffer which will be overwritten by subsequent calls.
The return type for strerror() is missing a type-qualifier; it should actually be const char *.
Programs that use the deprecated sys_errlist variable often fail to compile because they declare it inconsistently.
BSD
April 5, 2011 BSD