Sponsored Content
Top Forums Programming A question about printing error message with perror Post 302344227 by pludi on Saturday 15th of August 2009 08:23:41 AM
Old 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

“Ostream” object is not printing message on HP-UNIX for debug mode

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

Error message printing to Windows on port 515

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

does perror() set errno?

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

shell script, why isn't if printing message?

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

Message Editor question

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

perror with signals

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

help with C programming, perror

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

Printing all lines before a specific string and a custom message 2 lines after

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

Printing a message in file without opening it in perl

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

Display Message Question

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
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

Featured Tech Videos

All times are GMT -4. The time now is 08:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy