Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
explain_access(3)	    Library Functions Manual	       explain_access(3)

NAME
     explain_access - explain access(2) errors

SYNOPSIS
     #include <libexplain/access.h>
     const char *explain_access(const char *pathname, int mode);
     const  char  *explain_errno_access(int  errnum,  const  char *pathname, int
     mode);
     void explain_message_access(char *message,  int  message_size,  const  char
     *pathname, int mode);
     void  explain_message_errno_access(char *message, int message_size, int er-
     rnum, const char *pathname, int mode);

DESCRIPTION
     These functions may be used to obtain explanations for access(2) errors.

   explain_access
     const char *explain_access(const char *pathname, int mode);

     The explain_access function is used to obtain an explanation  of  an  error
     returned  by the access(2) system call.  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 de-
     coded.

     This function is intended to be used in a fashion similar to the  following
     example:
	    int fd = access(pathname, mode);
	    if (fd < 0)
	    {
		fprintf(stderr, "%s0, explain_access(pathname, mode));
		exit(EXIT_FAILURE);
	    }

     pathname
	     The  original  pathname,  exactly as passed to the access(2) system
	     call.

     mode    The original mode, exactly as passed to the access(2) system  call.
	     TP  8n  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,  in-
	     cluding 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_errno_access
     const char *explain_errno_access(int  errnum,  const  char  *pathname,  int
     mode);

     The  explain_errno_access	function  is used to obtain an explanation of an
     error returned by the access(2) system call.  The least  the  message  will
     contain  is the value of strerror(errnum), but usually it will do much bet-
     ter, and indicate the underlying cause in more detail.

     This function is intended to be used in a fashion similar to the  following
     example:
	    int fd = access(pathname, mode);
	    if (fd < 0)
	    {
		int err = errno;
		fprintf(stderr, "%s0, explain_errno_access(err, pathname,
		    mode));
		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  nec-
	     essary  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  access(2)  system
	     call.

     mode    The original mode, exactly as passed to the access(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 ar-
	     gument list.  This will be overwritten by the next call to any lib-
	     explain 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_access
     void  explain_message_access(char	*message,  int	message_size, const char
     *pathname, int mode);

     The explain_message_access function is used to obtain an explanation of  an
     error  returned  by  the access(2) system call.  The least the message will
     contain is the value of strerror(errno), but usually it will do  much  bet-
     ter, and indicate the underlying cause in more detail.

     The  errno global variable will be used to obtain the error value to be de-
     coded.

     This function is intended to be used in a fashion similar to the  following
     example:
	    int fd = access(pathname, mode);
	    if (fd < 0)
	    {
		char message[3000];
		explain_message_access(message, sizeof(message), pathname,
		    mode);
		fprintf(stderr, "%s0, 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  access(2)  system
	     call.

     mode    The original mode, exactly as passed to the access(2) system call.

   explain_message_errno_access
     void  explain_message_errno_access(char *message, int message_size, int er-
     rnum, const char *pathname, int mode);

     The explain_message_errno_access function is used to obtain an  explanation
     of  an  error returned by the access(2) system call.  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
     exameple:
	    int fd = access(pathname, mode);
	    if (fd < 0)
	    {
		int err = errno;
		char message[3000];
		explain_message_errno_access(message, sizeof(message), err,
		    pathname, mode);
		fprintf(stderr, "%s0, 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  nec-
	     essary  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  access(2)  system
	     call.

     mode    The original mode, exactly as passed to the access(2) system call.

COPYRIGHT
     libexplain version 1.3
     Copyright (C) 2008 Peter Miller

AUTHOR
     Written by Peter Miller <pmiller@opensource.org.au>

							       explain_access(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=explain_access&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help