11-11-2006
According to the latest
Posix Standard:
Quote:
It is unspecified whether errno is a macro or an identifier declared with external linkage. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name errno, the behavior is undefined.
This means that:
extern int errno;
is not legal anymore. You are supposed to include errno.h and depend on that include file to define errno for you. You will get unpredicable behavior if you use the external variable in a multi-threaded process.
10 More Discussions You Might Find Interesting
1. Programming
In Tru64 Unix, the 'errno' variable is not thread safe.
Could anybody help me about how to make it thread safe or how to check 'errno' in a Multithreaded program ????
The Programming process is like this.
There are some definite number of threads having their own task.
There is one... (2 Replies)
Discussion started by: S.Vishwanath
2 Replies
2. UNIX for Dummies Questions & Answers
Hi,
I have a SPARCstation 10 with SunOS 5.6
This erlier was in a network and now I have it at home to make a webserver.
At fist there was NIS and things left from erlier. So the "Console login:" newer appered only the white window with sun logo topleft and some text info.
I made... (14 Replies)
Discussion started by: roing
14 Replies
3. Programming
Hello,
I need to make a lib with pthread, when I run my make file all is good. But when I run my test program, I test errno in the begining and is already set to 251. Is it normal ??? What can I modify in my Makefile to have errno set to 0 ???
Thanks
$make
gcc -D_REENTRANT -shared -fpic... (3 Replies)
Discussion started by: dts
3 Replies
4. Programming
Hey, Can I assume that for certain function calls, errno can never be set to a certain value.
More specifically, can I assume that for if the stat function call fails, the errno can never be or "No space left on device."
I am assuming that a read function cannot fail because of no space... (5 Replies)
Discussion started by: the_learner
5 Replies
5. 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
6. Programming
If a process already has the entire file locked for read and write using newstruct.l_type = F_WRLCK; what would happen if another process would try to open it in read only mode using open(filename, O_RDONLY); ?
I want to check if the file exists and I want it to work even if another process has... (4 Replies)
Discussion started by: cyler
4 Replies
7. Solaris
Hi All,
I am getting an error message when I execute command “zlogin -C sunsrv4z5” on my root server.
INIT: Cannot stat /etc/inittab, errno: 2
INIT: Cannot stat /etc/inittab, errno: 2
As per my analysis it seems that some files inside /etc folder are deleted.
This server was... (14 Replies)
Discussion started by: surbhit4u
14 Replies
8. Linux
Dear all,
CentOS 6
After executing "yum update -y" command I am facing this error. Please help me out.
thanks in advance. Full error & error code is given as follow:
... (7 Replies)
Discussion started by: saqlain.bashir
7 Replies
9. Programming
(Apologies for any typos.)
OSX 10.12.3 AND Windows 10.
This is for the serious Python experts on at least 3.5.x and above...
In script format sys.stdout.write() AND sys.stderr.write() seems to work correctly.
Have I found a serious bug in the interactive sys.stdout.write() AND... (2 Replies)
Discussion started by: wisecracker
2 Replies
10. AIX
Hi, I need to look at a recent copy of /usr/include/errno.h from AIX 7.2 to check some symbols. In particular, I'm curious if it defines EOWNERDEAD and ENOTRECOVERABLE. Can someone who has access to 7.2 please check for me? Thanks! (1 Reply)
Discussion started by: topcat
1 Replies
LEARN ABOUT OPENSOLARIS
perror
perror(3C) Standard C Library Functions perror(3C)
NAME
perror, errno - print system error messages
SYNOPSIS
#include <stdio.h>
void perror(const char *s)
#include <errno.h>
int errno;
DESCRIPTION
The perror() function produces a message on the standard error output (file descriptor 2) describing the last error encountered during a
call to a system or library function. The argument string s is printed, followed by a colon and a blank, followed by the message and a NEW-
LINE character. If s is a null pointer or points to a null string, the colon is not printed. The argument string should include the name
of the program that incurred the error. The error number is taken from the external variable errno, which is set when errors occur but not
cleared when non-erroneous calls are made. See Intro(2).
In the case of multithreaded applications, the -mt option must be specified on the command line at compilation time (see threads(5)). When
the -mt option is specified, errno becomes a macro that enables each thread to have its own errno. This errno macro can be used on either
side of the assignment as though it were a variable.
USAGE
Messages printed from this function are in the native language specified by the LC_MESSAGES locale category. See setlocale(3C).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
Intro(2), fmtmsg(3C), gettext(3C), setlocale(3C), strerror(3C), attributes(5), standards(5), threads(5)
SunOS 5.11 12 Jul 2007 perror(3C)