strerror est standard ANSI C
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6315 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02master
parent
beb679f260
commit
94c928299c
|
@ -14,36 +14,15 @@
|
|||
/* $Id$ */
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <mlvalues.h>
|
||||
#include <alloc.h>
|
||||
|
||||
extern int error_table[];
|
||||
|
||||
#ifdef HAS_STRERROR
|
||||
|
||||
extern char * strerror(int);
|
||||
|
||||
CAMLprim value unix_error_message(value err)
|
||||
{
|
||||
int errnum;
|
||||
errnum = Is_block(err) ? Int_val(Field(err, 0)) : error_table[Int_val(err)];
|
||||
return copy_string(strerror(errnum));
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
|
||||
CAMLprim value unix_error_message(value err)
|
||||
{
|
||||
int errnum;
|
||||
errnum = Is_block(err) ? Int_val(Field(err, 0)) : error_table[Int_val(err)];
|
||||
if (errnum < 0 || errnum >= sys_nerr) {
|
||||
return copy_string("Unknown error");
|
||||
} else {
|
||||
return copy_string(sys_errlist[errnum]);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue