| 2718 | } |
| 2719 | |
| 2720 | static const char *strerror(int errnum) |
| 2721 | { |
| 2722 | switch (errnum) |
| 2723 | { |
| 2724 | case 0: return "Success"; |
| 2725 | case E2BIG: return "Argument list too long"; |
| 2726 | case EACCES: return "Permission denied"; |
| 2727 | case EAGAIN: return "Resource temporarily unavailable"; |
| 2728 | case EBADF: return "Bad file descriptor"; |
| 2729 | case EBADMSG: return "Bad message"; |
| 2730 | case EBUSY: return "Device or resource busy"; |
| 2731 | case ECANCELED: return "Operation canceled"; |
| 2732 | case ECHILD: return "No child processes"; |
| 2733 | case EDEADLK: return "Resource deadlock avoided"; |
| 2734 | case EDOM: return "Mathematics argument out of domain of function"; |
| 2735 | case EEXIST: return "File exists"; |
| 2736 | case EFAULT: return "Bad address"; |
| 2737 | case EFBIG: return "File too large"; |
| 2738 | case EINPROGRESS: return "Operation in progress"; |
| 2739 | case EINTR: return "Interrupted function call"; |
| 2740 | case EINVAL: return "Invalid argument"; |
| 2741 | case EIO: return "Input/output error"; |
| 2742 | case EISDIR: return "Is a directory"; |
| 2743 | case EMFILE: return "Too many open files"; |
| 2744 | case EMLINK: return "Too many links"; |
| 2745 | case EMSGSIZE: return "Message too long"; |
| 2746 | case ENAMETOOLONG: return "Filename too long"; |
| 2747 | case ENFILE: return "Too many open files in system"; |
| 2748 | case ENODEV: return "No such device"; |
| 2749 | case ENOENT: return "No such file or directory"; |
| 2750 | case ENOEXEC: return "Exec format error"; |
| 2751 | case ENOLCK: return "No locks available"; |
| 2752 | case ENOMEM: return "Not enough space"; |
| 2753 | case ENOSPC: return "No space left on device"; |
| 2754 | case ENOSYS: return "Function not implemented"; |
| 2755 | case ENOTDIR: return "Not a directory"; |
| 2756 | case ENOTEMPTY: return "Directory not empty"; |
| 2757 | case ENOTSUP: return "Operation not supported"; |
| 2758 | case ENOTTY: return "Inappropriate I/O control operation"; |
| 2759 | case ENXIO: return "No such device or address"; |
| 2760 | case EPERM: return "Operation not permitted"; |
| 2761 | case EPIPE: return "Broken pipe"; |
| 2762 | case ERANGE: return "Numerical result out of range"; |
| 2763 | case EROFS: return "Read-only filesystem"; |
| 2764 | case ESPIPE: return "Invalid seek"; |
| 2765 | case ESRCH: return "No such process"; |
| 2766 | case ETIMEDOUT: return "Connection timed out"; |
| 2767 | case EXDEV: return "Improper link"; |
| 2768 | case EOWNERDEAD: return "Owner died"; |
| 2769 | default: return "Unknown error code"; |
| 2770 | } |
| 2771 | } |
| 2772 | |
| 2773 | static const char *strsignal(int sig) |
| 2774 | { |
no outgoing calls