Allow setting errno instead of just clearing it

db4
Doug Coleman 2010-02-03 17:20:24 -06:00
parent 7447fc1073
commit a2ce57d856
3 changed files with 10 additions and 4 deletions

View File

@ -9,8 +9,14 @@ IN: libc
: errno ( -- int )
int "factor" "err_no" { } alien-invoke ;
: set-errno ( int -- )
void "factor" "set_err_no" { int } alien-invoke ;
: clear-errno ( -- )
void "factor" "clear_err_no" { } alien-invoke ;
0 set-errno ;
: preserve-errno ( quot -- )
errno [ call ] dip set-errno ; inline
<PRIVATE

View File

@ -245,8 +245,8 @@ VM_C_API int err_no()
return errno;
}
VM_C_API void clear_err_no()
VM_C_API void set_err_no(int err)
{
errno = 0;
errno = err;
}
}

View File

@ -8,6 +8,6 @@ int safe_fclose(FILE *stream);
/* Platform specific primitives */
VM_C_API int err_no();
VM_C_API void clear_err_no();
VM_C_API void set_err_no(int err);
}