Sponsored Content
Top Forums Programming Small query regarding function "char * strerror(int errnum)" Post 302762123 by Praveen_218 on Monday 28th of January 2013 06:07:44 AM
Old 01-28-2013
Small query regarding function "char * strerror(int errnum)"

As this function returns the address of the string corressponding to the errno value provided to it. Can someone please let me know where, in the memory, it could be (on freeBSD).

The MAN page tells under the BUG section that "For unknown error numbers, the strerror() function will return its result in a static buffer which may be overwritten by subsequent calls."

But it doesn't explictly mentions of anything, under normal conditions, of the storage location of the string that whether its the 'heap' area or some system array which holds the 'string object' whose address is returned by the function strerror().

Additionally what is sys_errlist in freeBSD and how to access it directly? Is it the array/table which holds the strings corressponding to the errno whose address is returned by the function strerror() (the MAN pages didn't tell this explictly); if yes then I have the following further questions:

1) How it is instantialized? Is it unique for every process? When it is instantialized/initialized ?
2) Can it be edited from a program (If not under RO data section) ?

Last edited by Praveen_218; 01-28-2013 at 07:42 AM..
 

8 More Discussions You Might Find Interesting

1. Programming

How to convert the "select" function into a "poll" function

i have a program using the select function but i want to convert it to poll... how can i do this? thanks in advance... :) (1 Reply)
Discussion started by: rbolante
1 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. HP-UX

ERROR: more than one instance of overloaded function "vprintf" has "C" linkage

Hi people! I've got this own library: -------------------------------------------- Personal.h -------------------------------------------- #ifdef __cplusplus extern "C" { #endif #include <stdio.h> #include <stdarg.h> #include <string.h> ... (0 Replies)
Discussion started by: donatoll
0 Replies

4. Solaris

significance of "+" char in SunOS "ls -l" output

Hi, I've noticed that the permissions output from "ls -l" under SunOS differs from Linux in that after the "rwxrwxrwx" field, there is an additional "+" character that may or may not be there. What is the significance of this character? Thanks, Suan (6 Replies)
Discussion started by: sayeo
6 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

7. Shell Programming and Scripting

Move a line containg "char" above line containing "xchar"

Okay, so I have a rather large text file and will have to process many more and this will save me hours of work. I'm not very good at scripting, so bear with me please. Working on Linux RHEL I've been able to filter and edit and clean up using sed, but I have a problem with moving lines. ... (9 Replies)
Discussion started by: rex007can
9 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 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 *s); 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 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. 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. 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), 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
For unknown error numbers, the strerror() function will return its result in a static buffer which may 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
October 12, 2004 BSD
All times are GMT -4. The time now is 01:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy