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
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
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
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
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
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
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
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
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
LEARN ABOUT REDHAT
strerror_r
STRERROR(3) Linux Programmer's Manual STRERROR(3)
NAME
strerror, strerror_r - return string describing error code
SYNOPSIS
#include <string.h>
char *strerror(int errnum);
int strerror_r(int errnum, char *buf, size_t n);
DESCRIPTION
The strerror() function returns a string describing the error code passed in the argument errnum, possibly using the LC_MESSAGES part of
the current locale to select the appropriate language. This string must not be modified by the application, but may be modified by a sub-
sequent call to perror() or strerror(). No library function will modify this string.
The strerror_r() function is similar to strerror(), but is thread safe. It returns the string in the user-supplied buffer buf of length n.
RETURN VALUE
The strerror() function returns the appropriate error description string, or an unknown error message if the error code is unknown. The
value of errno is not changed for a successful call, and is set to a nonzero value upon error. The strerror_r() function returns 0 on suc-
cess and -1 on failure, setting errno.
ERRORS
EINVAL The value of errnum is not a valid error number.
ERANGE Insufficient storage was supplied to contain the error description string.
CONFORMING TO
SVID 3, POSIX, BSD 4.3, ISO/IEC 9899:1990 (C89).
strerror_r() with prototype as given above is specified by SUSv3, and was in use under Digital Unix and HP Unix. An incompatible function,
with prototype
char *strerror_r(int errnum, char *buf, size_t n);
is a GNU extension used by glibc (since 2.0), and must be regarded as obsolete in view of SUSv3. The GNU version may, but need not, use
the user-supplied buffer. If it does, the result may be truncated in case the supplied buffer is too small. The result is always NUL-ter-
minated.
SEE ALSO
errno(3), perror(3), strsignal(3)
2001-10-16 STRERROR(3)