Usermode/libc - C++ wrapping in headers, time rework
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / errno.c
index af369b1..6f95457 100644 (file)
@@ -6,6 +6,7 @@
  * - errno and strerror
  */
 #include "lib.h"
+#include <stdio.h>
 #include <errno.h>
 #include <acess/sys.h>
 #include <string.h>
@@ -42,8 +43,11 @@ EXPORT char *strerror(int errnum)
        case EADDRNOTAVAIL:     return "Address not avaliable";
        case EINPROGRESS:       return "Operation in process";
        case EPERM:     return "Operation not permitted";
+       case ENOTTY:    return "Not a TTY";
        case EAGAIN:    return "Try again";
+       case EFBIG:     return "File too big";
        case EALREADY:  return "Operation was no-op";
+       case EAFNOSUPPORT:      return "Address family not supported";
        case EINTERNAL: return "Internal error";
        }
        _SysDebug("strerror: errnum=%i unk", errnum);
@@ -61,3 +65,16 @@ EXPORT int strerror_r(int errnum, char *buf, size_t bufsiz)
        return 0;
 }
 
+// stdio.h
+EXPORT void perror(const char *s)
+{
+       int err = errno;
+       if( s && s[0] ) {
+               fprintf(stderr, "%s: (%i) %s\n", s, err, strerror(err));
+       }
+       else {
+               fprintf(stderr, "(%i) %s\n", err, strerror(err));
+       }
+       _SysDebug("perror('%s'): %s (%i)", s, strerror(err), err);
+}
+

UCC git Repository :: git.ucc.asn.au