strerror est standard ANSI C

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6315 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Xavier Leroy 2004-05-23 15:53:50 +00:00
parent beb679f260
commit 94c928299c
1 changed files with 1 additions and 22 deletions

View File

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