Go to the first, previous, next, last section, table of contents.
#include <dos.h> int dostrerr(struct DOSERROR *p_error, struct DOSERROR_str *p_str);
This function accepts the extended error structure from DOS (e.g., from
the returned parameter from function dosexterr
,
see section dosexterr) and returns the strings which describes that error
structure in the structure pointed to by the second parameter. This
function is a DOS analogue of the ANSI function strerror
(see section strerror), and can be used to print descriptive messages
corresponding to the errors described in the DOSERROR
structure.
For a list of the strings returned for each error number and type, see section dosexterr.
p_error must point to the following structure:
struct DOSERROR { int exterror; char class; char action; char locus; };
p_str must point to the following structure:
struct DOSERROR_STR { char *exterror_str; char *class_str; char *action_str; char *locus_str; };
If either pointer parameter is NULL
, returns -1 and sets
errno
to EINVAL. If both parameters are not NULL
, checks
the value of each member of the DOSERROR
parameter p_error.
If each value is within the limits of valid error codes for that member,
sets parameter p_str member fields with the corresponding string
describing the error code. If any error code is outside of the valid
values for that code, sets the corresponding p_str member to the
string "Unknown error: " followed by the decimal numeric value of the
error code.
not ANSI, not POSIX
#include <stdio.h> #include <dos.h> int main(void) { FILE *fp; struct DOSERROR de; struct DOSERROR_STR se; fp = fopen("EXAMPLE.DAT","r"); if ( fp == NULL ) { puts("Unable to open file for reading."); dosexterr(&de); dostrerr(&de, &se); printf("Extended DOS error information:\n"); printf("Extended error: %i : %s\n",de.exterror,se.exterror_str); printf("Class: %x : %s\n",de.class,se.class_str); printf("Action: %x : %s\n",de.action,se.action_str); printf("Error Locus: %x : %s\n",de.locus,se.locus_str); } return 0; }
Go to the first, previous, next, last section, table of contents.