errno


 
Thread Tools Search this Thread
Top Forums Programming errno
# 1  
Old 10-01-2008
errno

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 [ENOSPC] or "No space left on device."

I am assuming that a read function cannot fail because of no space left.

Thanks !!
# 2  
Old 10-01-2008
Interesting !

I would assume 'yes'. I don't see a reason for ENOSPC and read system call failing due to that.
# 3  
Old 10-02-2008
Read the man page for stat/read on your system. It lists the errno values stat (or any listed syscall) can return. When you go from Linux to HPUX - as an example - you can see differences.

Linux:
Quote:
Errors
EACCES
Search permission is denied for one of the directories in the path prefix of path. (See also path_resolution(2).)
EBADF
filedes is bad.
EFAULT
Bad address.
ELOOP
Too many symbolic links encountered while traversing the path.
ENAMETOOLONG
File name too long.
ENOENT
A component of the path path does not exist, or the path is an empty string.
ENOMEM
Out of memory (i.e. kernel memory).
ENOTDIR
A component of the path is not a directory.
HPUX
Quote:
ERRRORS
EFAULT buf or path points to an invalid address
EOVERFLOW the file size in bytes cannot be represented in the structure pointed to...
If you find a different errno value then it was set before or after your stat call.
# 4  
Old 10-02-2008
If stat() returns -1, THEN errno will be meaningful. Some implementations of libraries don't reset errno unless there actually was an error, meaning you might get the 'leftover' error of a previous call.
# 5  
Old 10-02-2008
Question Rationale

What is the reason that you want such an implementation?
errno is usually set by the called function when it returns to indicate whether it failed or succeeded.
Exceptions are those functions that don't use errno but may set it unknowingly. In any case it's not advisable to assume anything.
# 6  
Old 10-02-2008
Quote:
Originally Posted by otheus
If stat() returns -1, THEN errno will be meaningful. Some implementations of libraries don't reset errno unless there actually was an error, meaning you might get the 'leftover' error of a previous call.
This is a very important observation for the original poster. The errno variable may not be accurate if there are more functions being called after the error occurred.

Code:
function1(); // let's says this function fails with EPERM errno will be 1
function2(); // this function also fails with ERANGE errno will be 34
/* errno was changed twice, so if you would analyze it here not knowing function2() had failed, you might consider an error which didn't belong to function1() */
function3(); // ...

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Errno.h symbols

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

2. UNIX for Dummies Questions & Answers

[Ultrix] /etc/init failed, errno 2

I am running the gxemul software under cygwin, Just when installing the .iso image, I got the error shown in the picture. Any ideas what's happening? Thanks Jack (1 Reply)
Discussion started by: lucky7456969
1 Replies

3. Programming

Function open() sets errno

I am opening a text file using open() system call in O_RDONLY mode. open() returns me a valid handler but also sets errno to 13 i.e. EACCES(Permission denied). Question is when open() is returning a valid handler then why does it sets the errno? Should not errno be set only in case of error... (10 Replies)
Discussion started by: rupeshkp728
10 Replies

4. Programming

Getpwnam_r returning null with errno 25

I am calling getpwnam_r with all proper argument as below:- rv = getpwnam_r(name, result, buffer, buflen); This program runs fine on sol 8/9/10. But on sol 11 it returns NULL with errno set to 25 (#define ENOTTY 25 /* Inappropriate ioctl for device */) All boxes are... (2 Replies)
Discussion started by: Ranajit
2 Replies

5. Linux

[Errno 256] No more mirrors to try.

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

6. Programming

need help about get errno [ENXIO] for mmap

from mmap manpage I get it's errors discription: The addresses specified by the range [off, off + len) are invalid for filedes. How could I trigger a ENXIO ? anyone can input the code? Lei (3 Replies)
Discussion started by: yanglei_fage
3 Replies

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

8. Programming

Hi errno in sys/stat.h

How should I use errno in a c program and what info does it have . I am working with directories and files. So can any one tell me How to access errno?I am using the stat() function on \etc directory and I am alble to access only the half of the directories.I am not able to access other half and... (6 Replies)
Discussion started by: vijlak
6 Replies

9. Programming

errno pb

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

10. Programming

Getting errno in a Multithreaded program

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
Login or Register to Ask a Question