Sponsored Content
Full Discussion: Hi errno in sys/stat.h
Top Forums Programming Hi errno in sys/stat.h Post 302095887 by hegemaro on Saturday 11th of November 2006 06:44:35 PM
Old 11-11-2006
The values for errno for any system call are defined in the manual pages for that system call. Being an integer, yes, you can test it against any of the constant values as defined in errno.h (actually /usr/include/sys/errno.h under Solaris 8). A code snippet might look like this:

Code:
if ( stat (cpString, &Status) == -1 )
{
    if ( errno == ENOENT )
    {
        fprintf (stderr, "The file doesn't exist\n");
    }
    else if ( errno == ENOPERM )
    {
        fprintf (stderr, "I don't have permission to read that file\n");
    }
    else
    {
        syserr ("Unable to %s %s", "status", cpString);
    }
}

Of course, rather than just writing messages to stderr, you could include code to acutally do something useful.
 

10 More Discussions You Might Find Interesting

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

2. UNIX for Dummies Questions & Answers

login error after sys-unconfig, errno = 13

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

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

4. Programming

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

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

6. Programming

Open function of sys/stat.h

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

How to resolve error "INIT: Cannot stat /etc/inittab, errno: 2"

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

[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

9. Programming

Interactive Python 3.5+ sys.stdout.write() AND sys.stderr.write() bug?

(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

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
explain_stat(3) 					     Library Functions Manual						   explain_stat(3)

NAME
explain_stat - explain stat(2) errors SYNOPSIS
#include <libexplain/stat.h> const char *explain_stat(const char *pathname, const struct stat *buf); void explain_message_stat(char *message, int message_size, const char *pathname, const struct stat *buf); const char *explain_errno_stat(int errnum, const char *pathname, const struct stat *buf); void explain_message_errno_stat(char *message, int message_size, int errnum, const char *pathname, const struct stat *buf); DESCRIPTION
These functions may be used to obtain explanations for stat(2) errors . explain_errno_stat const char *explain_errno_stat(int errnum, const char *pathname, const struct stat *buf); The explain_errno_stat function is used to obtain an explanation of an error returned by the stat(2) function. The least the message will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail. This function is intended to be used in a fashion similar to the following example: if (stat(pathname, &buf) < 0) { int err = errno; fprintf(stderr, "%s ", explain_errno_stat(err, pathname, &buf)); exit(EXIT_FAILURE); } errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. pathname The original pathname, exactly as passed to the stat(2) system call. buf The original buf, exactly as passed to the stat(2) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. explain_message_errno_stat void explain_message_errno_stat(char *message, int message_size, int errnum, const char *pathname, const struct stat *buf); The explain_message_errno_stat function is used to obtain an explanation of an error returned by the stat(2) function. The least the mes- sage will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail. This function is intended to be used in a fashion similar to the following example: if (stat(pathname, &buf) < 0) { int err = errno; char message[3000]; explain_message_errno_stat(message, sizeof(message), err, pathname, &buf); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } message The location in which to store the returned message. Because a message return buffer has been supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. pathname The original pathname, exactly as passed to the stat(2) system call. buf The original buf, exactly as passed to the stat(2) system call. explain_message_stat void explain_message_stat(char *message, int message_size, const char *pathname, const struct stat *buf); The explain_message_stat function is used to obtain an explanation of an error returned by the stat(2) function. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. This function is intended to be used in a fashion similar to the following example: if (stat(pathname, &buf) < 0) { char message[3000]; explain_message_stat(message, sizeof(message), pathname, &buf); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } message The location in which to store the returned message. Because a message return buffer has been supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. pathname The original pathname, exactly as passed to the stat(2) system call. buf The original buf, exactly as passed to the stat(2) system call. explain_stat const char *explain_stat(const char *pathname, const struct stat * buf); The explain_stat function is used to obtain an explanation of an error returned by the stat(2) function. The least the message will con- tain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. This function is intended to be used in a fashion similar to the following example: if (stat(pathname, &buf) < 0) { fprintf(stderr, "%s ", explain_stat(pathname, &buf)); exit(EXIT_FAILURE); } pathname The original pathname, exactly as passed to the stat(2) system call. buf The original buf, exactly as passed to the stat(2) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. COPYRIGHT
libexplain version 0.52 Copyright (C) 2008 Peter Miller AUTHOR
Written by Peter Miller <pmiller@opensource.org.au> explain_stat(3)
All times are GMT -4. The time now is 04:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy