[ ] [ [ "block" get &free drop ] with-destructors ] unit-test\r
\r
[ f ] [ "block" get malloc-exists? ] unit-test\r
+
+[ "No error" ] [ 0 strerror ] unit-test
! Copyright (C) 2007, 2010 Slava Pestov
! Copyright (C) 2007, 2008 Doug Coleman
! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.syntax assocs continuations
-alien.destructors kernel namespaces accessors sets summary
-destructors destructors.private ;
+USING: accessors alien alien.c-types alien.destructors alien.syntax assocs
+combinators continuations destructors destructors.private kernel math
+namespaces prettyprint sequences sets summary system vocabs ;
IN: libc
+<< "libc." os unparse append require >>
+
LIBRARY: factor
FUNCTION-ALIAS: errno
LIBRARY: libc
+FUNCTION: c-string strerror ( int errno ) ;
+
+ERROR: libc-error errno message ;
+
+: (io-error) ( -- * ) errno dup strerror libc-error ;
+
+: io-error ( n -- ) 0 < [ (io-error) ] when ;
+
FUNCTION-ALIAS: (malloc)
void* malloc ( size_t size ) ;
--- /dev/null
+USING: alien.syntax ;
+IN: libc.linux
+
+LIBRARY: libc
+
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EAGAIN 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EDEADLK 35
+CONSTANT: ENAMETOOLONG 36
+CONSTANT: ENOLCK 37
+CONSTANT: ENOSYS 38
+CONSTANT: ENOTEMPTY 39
+CONSTANT: ELOOP 40
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: ENOMSG 42
+CONSTANT: EIDRM 43
+CONSTANT: ECHRNG 44
+CONSTANT: EL2NSYNC 45
+CONSTANT: EL3HLT 46
+CONSTANT: EL3RST 47
+CONSTANT: ELNRNG 48
+CONSTANT: EUNATCH 49
+CONSTANT: ENOCSI 50
+CONSTANT: EL2HLT 51
+CONSTANT: EBADE 52
+CONSTANT: EBADR 53
+CONSTANT: EXFULL 54
+CONSTANT: ENOANO 55
+CONSTANT: EBADRQC 56
+CONSTANT: EBADSLT 57
+ALIAS: EDEADLOCK EDEADLK
+CONSTANT: EBFONT 59
+CONSTANT: ENOSTR 60
+CONSTANT: ENODATA 61
+CONSTANT: ETIME 62
+CONSTANT: ENOSR 63
+CONSTANT: ENONET 64
+CONSTANT: ENOPKG 65
+CONSTANT: EREMOTE 66
+CONSTANT: ENOLINK 67
+CONSTANT: EADV 68
+CONSTANT: ESRMNT 69
+CONSTANT: ECOMM 70
+CONSTANT: EPROTO 71
+CONSTANT: EMULTIHOP 72
+CONSTANT: EDOTDOT 73
+CONSTANT: EBADMSG 74
+CONSTANT: EOVERFLOW 75
+CONSTANT: ENOTUNIQ 76
+CONSTANT: EBADFD 77
+CONSTANT: EREMCHG 78
+CONSTANT: ELIBACC 79
+CONSTANT: ELIBBAD 80
+CONSTANT: ELIBSCN 81
+CONSTANT: ELIBMAX 82
+CONSTANT: ELIBEXEC 83
+CONSTANT: EILSEQ 84
+CONSTANT: ERESTART 85
+CONSTANT: ESTRPIPE 86
+CONSTANT: EUSERS 87
+CONSTANT: ENOTSOCK 88
+CONSTANT: EDESTADDRREQ 89
+CONSTANT: EMSGSIZE 90
+CONSTANT: EPROTOTYPE 91
+CONSTANT: ENOPROTOOPT 92
+CONSTANT: EPROTONOSUPPORT 93
+CONSTANT: ESOCKTNOSUPPORT 94
+CONSTANT: EOPNOTSUPP 95
+CONSTANT: EPFNOSUPPORT 96
+CONSTANT: EAFNOSUPPORT 97
+CONSTANT: EADDRINUSE 98
+CONSTANT: EADDRNOTAVAIL 99
+CONSTANT: ENETDOWN 100
+CONSTANT: ENETUNREACH 101
+CONSTANT: ENETRESET 102
+CONSTANT: ECONNABORTED 103
+CONSTANT: ECONNRESET 104
+CONSTANT: ENOBUFS 105
+CONSTANT: EISCONN 106
+CONSTANT: ENOTCONN 107
+CONSTANT: ESHUTDOWN 108
+CONSTANT: ETOOMANYREFS 109
+CONSTANT: ETIMEDOUT 110
+CONSTANT: ECONNREFUSED 111
+CONSTANT: EHOSTDOWN 112
+CONSTANT: EHOSTUNREACH 113
+CONSTANT: EALREADY 114
+CONSTANT: EINPROGRESS 115
+CONSTANT: ESTALE 116
+CONSTANT: EUCLEAN 117
+CONSTANT: ENOTNAM 118
+CONSTANT: ENAVAIL 119
+CONSTANT: EISNAM 120
+CONSTANT: EREMOTEIO 121
+CONSTANT: EDQUOT 122
+CONSTANT: ENOMEDIUM 123
+CONSTANT: EMEDIUMTYPE 124
+CONSTANT: ECANCELED 125
+CONSTANT: ENOKEY 126
+CONSTANT: EKEYEXPIRED 127
+CONSTANT: EKEYREVOKED 128
+CONSTANT: EKEYREJECTED 129
+CONSTANT: EOWNERDEAD 130
+CONSTANT: ENOTRECOVERABLE 131
+
+CONSTANT: SIGHUP 1
+CONSTANT: SIGINT 2
+CONSTANT: SIGQUIT 3
+CONSTANT: SIGILL 4
+CONSTANT: SIGTRAP 5
+CONSTANT: SIGABRT 6
+CONSTANT: SIGIOT 6
+CONSTANT: SIGBUS 7
+CONSTANT: SIGFPE 8
+CONSTANT: SIGKILL 9
+CONSTANT: SIGUSR1 10
+CONSTANT: SIGSEGV 11
+CONSTANT: SIGUSR2 12
+CONSTANT: SIGPIPE 13
+CONSTANT: SIGALRM 14
+CONSTANT: SIGTERM 15
+CONSTANT: SIGSTKFLT 16
+CONSTANT: SIGCHLD 17
+ALIAS: SIGCLD SIGCHLD
+CONSTANT: SIGCONT 18
+CONSTANT: SIGSTOP 19
+CONSTANT: SIGTSTP 20
+CONSTANT: SIGTTIN 21
+CONSTANT: SIGTTOU 22
+CONSTANT: SIGURG 23
+CONSTANT: SIGXCPU 24
+CONSTANT: SIGXFSZ 25
+CONSTANT: SIGVTALRM 26
+CONSTANT: SIGPROF 27
+CONSTANT: SIGWINCH 28
+CONSTANT: SIGIO 29
+ALIAS: SIGPOLL SIGIO
+CONSTANT: SIGPWR 30
+CONSTANT: SIGSYS 31
--- /dev/null
+USING: alien.syntax ;
+IN: libc.macosx
+
+LIBRARY: libc
+
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EDEADLK 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: ENOTBLK 15
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: EINVAL 22
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: ETXTBSY 26
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: ERANGE 34
+CONSTANT: EAGAIN 35
+ALIAS: EWOULDBLOCK EAGAIN
+CONSTANT: EINPROGRESS 36
+CONSTANT: EALREADY 37
+CONSTANT: ENOTSOCK 38
+CONSTANT: EDESTADDRREQ 39
+CONSTANT: EMSGSIZE 40
+CONSTANT: EPROTOTYPE 41
+CONSTANT: ENOPROTOOPT 42
+CONSTANT: EPROTONOSUPPORT 43
+CONSTANT: ESOCKTNOSUPPORT 44
+CONSTANT: ENOTSUP 45
+CONSTANT: EPFNOSUPPORT 46
+CONSTANT: EAFNOSUPPORT 47
+CONSTANT: EADDRINUSE 48
+CONSTANT: EADDRNOTAVAIL 49
+CONSTANT: ENETDOWN 50
+CONSTANT: ENETUNREACH 51
+CONSTANT: ENETRESET 52
+CONSTANT: ECONNABORTED 53
+CONSTANT: ECONNRESET 54
+CONSTANT: ENOBUFS 55
+CONSTANT: EISCONN 56
+CONSTANT: ENOTCONN 57
+CONSTANT: ESHUTDOWN 58
+CONSTANT: ETOOMANYREFS 59
+CONSTANT: ETIMEDOUT 60
+CONSTANT: ECONNREFUSED 61
+CONSTANT: ELOOP 62
+CONSTANT: ENAMETOOLONG 63
+CONSTANT: EHOSTDOWN 64
+CONSTANT: EHOSTUNREACH 65
+CONSTANT: ENOTEMPTY 66
+CONSTANT: EPROCLIM 67
+CONSTANT: EUSERS 68
+CONSTANT: EDQUOT 69
+CONSTANT: ESTALE 70
+CONSTANT: EREMOTE 71
+CONSTANT: EBADRPC 72
+CONSTANT: ERPCMISMATCH 73
+CONSTANT: EPROGUNAVAIL 74
+CONSTANT: EPROGMISMATCH 75
+CONSTANT: EPROCUNAVAIL 76
+CONSTANT: ENOLCK 77
+CONSTANT: ENOSYS 78
+CONSTANT: EFTYPE 79
+CONSTANT: EAUTH 80
+CONSTANT: ENEEDAUTH 81
+CONSTANT: EPWROFF 82
+CONSTANT: EDEVERR 83
+CONSTANT: EOVERFLOW 84
+CONSTANT: EBADEXEC 85
+CONSTANT: EBADARCH 86
+CONSTANT: ESHLIBVERS 87
+CONSTANT: EBADMACHO 88
+CONSTANT: ECANCELED 89
+CONSTANT: EIDRM 90
+CONSTANT: ENOMSG 91
+CONSTANT: EILSEQ 92
+CONSTANT: ENOATTR 93
+CONSTANT: EBADMSG 94
+CONSTANT: EMULTIHOP 95
+CONSTANT: ENODATA 96
+CONSTANT: ENOLINK 97
+CONSTANT: ENOSR 98
+CONSTANT: ENOSTR 99
+CONSTANT: EPROTO 100
+CONSTANT: ETIME 101
+CONSTANT: EOPNOTSUPP 102
+CONSTANT: ENOPOLICY 103
+
+CONSTANT: SIGHUP 1
+CONSTANT: SIGINT 2
+CONSTANT: SIGQUIT 3
+CONSTANT: SIGILL 4
+CONSTANT: SIGTRAP 5
+CONSTANT: SIGABRT 6
+CONSTANT: SIGEMT 7
+CONSTANT: SIGFPE 8
+CONSTANT: SIGKILL 9
+CONSTANT: SIGBUS 10
+CONSTANT: SIGSEGV 11
+CONSTANT: SIGSYS 12
+CONSTANT: SIGPIPE 13
+CONSTANT: SIGALRM 14
+CONSTANT: SIGTERM 15
+CONSTANT: SIGURG 16
+CONSTANT: SIGSTOP 17
+CONSTANT: SIGTSTP 18
+CONSTANT: SIGCONT 19
+CONSTANT: SIGCHLD 20
+CONSTANT: SIGTTIN 21
+CONSTANT: SIGTTOU 22
+CONSTANT: SIGIO 23
+CONSTANT: SIGXCPU 24
+CONSTANT: SIGXFSZ 25
+CONSTANT: SIGVTALRM 26
+CONSTANT: SIGPROF 27
+CONSTANT: SIGWINCH 28
+CONSTANT: SIGINFO 29
+CONSTANT: SIGUSR1 30
+CONSTANT: SIGUSR2 31
--- /dev/null
+USING: alien.syntax ;
+IN: libc.windows
+
+LIBRARY: libc
+
+! From errno.h in msvc 10:
+CONSTANT: EPERM 1
+CONSTANT: ENOENT 2
+CONSTANT: ESRCH 3
+CONSTANT: EINTR 4
+CONSTANT: EIO 5
+CONSTANT: ENXIO 6
+CONSTANT: E2BIG 7
+CONSTANT: ENOEXEC 8
+CONSTANT: EBADF 9
+CONSTANT: ECHILD 10
+CONSTANT: EAGAIN 11
+CONSTANT: ENOMEM 12
+CONSTANT: EACCES 13
+CONSTANT: EFAULT 14
+CONSTANT: EBUSY 16
+CONSTANT: EEXIST 17
+CONSTANT: EXDEV 18
+CONSTANT: ENODEV 19
+CONSTANT: ENOTDIR 20
+CONSTANT: EISDIR 21
+CONSTANT: ENFILE 23
+CONSTANT: EMFILE 24
+CONSTANT: ENOTTY 25
+CONSTANT: EFBIG 27
+CONSTANT: ENOSPC 28
+CONSTANT: ESPIPE 29
+CONSTANT: EROFS 30
+CONSTANT: EMLINK 31
+CONSTANT: EPIPE 32
+CONSTANT: EDOM 33
+CONSTANT: EDEADLK 36
+CONSTANT: ENAMETOOLONG 38
+CONSTANT: ENOLCK 39
+CONSTANT: ENOSYS 40
+CONSTANT: ENOTEMPTY 41
+
+! Error codes used in the Secure CRT functions
+CONSTANT: EINVAL 22
+CONSTANT: ERANGE 34
+CONSTANT: EILSEQ 42
+CONSTANT: STRUNCATE 80
+
+! Support EDEADLOCK for compatibility with older MS-C versions
+ALIAS: EDEADLOCK EDEADLK
+
+! POSIX SUPPLEMENT
+CONSTANT: EADDRINUSE 100
+CONSTANT: EADDRNOTAVAIL 101
+CONSTANT: EAFNOSUPPORT 102
+CONSTANT: EALREADY 103
+CONSTANT: EBADMSG 104
+CONSTANT: ECANCELED 105
+CONSTANT: ECONNABORTED 106
+CONSTANT: ECONNREFUSED 107
+CONSTANT: ECONNRESET 108
+CONSTANT: EDESTADDRREQ 109
+CONSTANT: EHOSTUNREACH 110
+CONSTANT: EIDRM 111
+CONSTANT: EINPROGRESS 112
+CONSTANT: EISCONN 113
+CONSTANT: ELOOP 114
+CONSTANT: EMSGSIZE 115
+CONSTANT: ENETDOWN 116
+CONSTANT: ENETRESET 117
+CONSTANT: ENETUNREACH 118
+CONSTANT: ENOBUFS 119
+CONSTANT: ENODATA 120
+CONSTANT: ENOLINK 121
+CONSTANT: ENOMSG 122
+CONSTANT: ENOPROTOOPT 123
+CONSTANT: ENOSR 124
+CONSTANT: ENOSTR 125
+CONSTANT: ENOTCONN 126
+CONSTANT: ENOTRECOVERABLE 127
+CONSTANT: ENOTSOCK 128
+CONSTANT: ENOTSUP 129
+CONSTANT: EOPNOTSUPP 130
+CONSTANT: EOTHER 131
+CONSTANT: EOVERFLOW 132
+CONSTANT: EOWNERDEAD 133
+CONSTANT: EPROTO 134
+CONSTANT: EPROTONOSUPPORT 135
+CONSTANT: EPROTOTYPE 136
+CONSTANT: ETIME 137
+CONSTANT: ETIMEDOUT 138
+CONSTANT: ETXTBSY 139
+CONSTANT: EWOULDBLOCK 140
+
+! From signal.h in msvc 10:
+CONSTANT: SIGINT 2
+CONSTANT: SIGILL 4
+CONSTANT: SIGFPE 8
+CONSTANT: SIGSEGV 11
+CONSTANT: SIGTERM 15
+CONSTANT: SIGBREAK 21
+CONSTANT: SIGABRT 22
+
+CONSTANT: SIGABRT_COMPAT 6
! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors debugger io kernel prettyprint unix ;
+USING: accessors debugger io kernel libc prettyprint unix ;
IN: unix.debugger
-M: unix-error error.
+M: libc-error error.
"Unix system call failed:" print
nl
dup message>> write " (" write errno>> pprint ")" print ;
LIBRARY: libc
-FUNCTION: c-string strerror ( int errno ) ;
-
STRUCT: group
{ gr_name c-string }
{ gr_passwd c-string }
FUNCTION: dirent* readdir64 ( DIR* dirp ) ;
FUNCTION: int readdir64_r ( void* dirp, dirent* entry, dirent** result ) ;
-CONSTANT: EPERM 1
-CONSTANT: ENOENT 2
-CONSTANT: ESRCH 3
-CONSTANT: EINTR 4
-CONSTANT: EIO 5
-CONSTANT: ENXIO 6
-CONSTANT: E2BIG 7
-CONSTANT: ENOEXEC 8
-CONSTANT: EBADF 9
-CONSTANT: ECHILD 10
-CONSTANT: EAGAIN 11
-CONSTANT: ENOMEM 12
-CONSTANT: EACCES 13
-CONSTANT: EFAULT 14
-CONSTANT: ENOTBLK 15
-CONSTANT: EBUSY 16
-CONSTANT: EEXIST 17
-CONSTANT: EXDEV 18
-CONSTANT: ENODEV 19
-CONSTANT: ENOTDIR 20
-CONSTANT: EISDIR 21
-CONSTANT: EINVAL 22
-CONSTANT: ENFILE 23
-CONSTANT: EMFILE 24
-CONSTANT: ENOTTY 25
-CONSTANT: ETXTBSY 26
-CONSTANT: EFBIG 27
-CONSTANT: ENOSPC 28
-CONSTANT: ESPIPE 29
-CONSTANT: EROFS 30
-CONSTANT: EMLINK 31
-CONSTANT: EPIPE 32
-CONSTANT: EDOM 33
-CONSTANT: ERANGE 34
-CONSTANT: EDEADLK 35
-CONSTANT: ENAMETOOLONG 36
-CONSTANT: ENOLCK 37
-CONSTANT: ENOSYS 38
-CONSTANT: ENOTEMPTY 39
-CONSTANT: ELOOP 40
-ALIAS: EWOULDBLOCK EAGAIN
-CONSTANT: ENOMSG 42
-CONSTANT: EIDRM 43
-CONSTANT: ECHRNG 44
-CONSTANT: EL2NSYNC 45
-CONSTANT: EL3HLT 46
-CONSTANT: EL3RST 47
-CONSTANT: ELNRNG 48
-CONSTANT: EUNATCH 49
-CONSTANT: ENOCSI 50
-CONSTANT: EL2HLT 51
-CONSTANT: EBADE 52
-CONSTANT: EBADR 53
-CONSTANT: EXFULL 54
-CONSTANT: ENOANO 55
-CONSTANT: EBADRQC 56
-CONSTANT: EBADSLT 57
-ALIAS: EDEADLOCK EDEADLK
-CONSTANT: EBFONT 59
-CONSTANT: ENOSTR 60
-CONSTANT: ENODATA 61
-CONSTANT: ETIME 62
-CONSTANT: ENOSR 63
-CONSTANT: ENONET 64
-CONSTANT: ENOPKG 65
-CONSTANT: EREMOTE 66
-CONSTANT: ENOLINK 67
-CONSTANT: EADV 68
-CONSTANT: ESRMNT 69
-CONSTANT: ECOMM 70
-CONSTANT: EPROTO 71
-CONSTANT: EMULTIHOP 72
-CONSTANT: EDOTDOT 73
-CONSTANT: EBADMSG 74
-CONSTANT: EOVERFLOW 75
-CONSTANT: ENOTUNIQ 76
-CONSTANT: EBADFD 77
-CONSTANT: EREMCHG 78
-CONSTANT: ELIBACC 79
-CONSTANT: ELIBBAD 80
-CONSTANT: ELIBSCN 81
-CONSTANT: ELIBMAX 82
-CONSTANT: ELIBEXEC 83
-CONSTANT: EILSEQ 84
-CONSTANT: ERESTART 85
-CONSTANT: ESTRPIPE 86
-CONSTANT: EUSERS 87
-CONSTANT: ENOTSOCK 88
-CONSTANT: EDESTADDRREQ 89
-CONSTANT: EMSGSIZE 90
-CONSTANT: EPROTOTYPE 91
-CONSTANT: ENOPROTOOPT 92
-CONSTANT: EPROTONOSUPPORT 93
-CONSTANT: ESOCKTNOSUPPORT 94
-CONSTANT: EOPNOTSUPP 95
-CONSTANT: EPFNOSUPPORT 96
-CONSTANT: EAFNOSUPPORT 97
-CONSTANT: EADDRINUSE 98
-CONSTANT: EADDRNOTAVAIL 99
-CONSTANT: ENETDOWN 100
-CONSTANT: ENETUNREACH 101
-CONSTANT: ENETRESET 102
-CONSTANT: ECONNABORTED 103
-CONSTANT: ECONNRESET 104
-CONSTANT: ENOBUFS 105
-CONSTANT: EISCONN 106
-CONSTANT: ENOTCONN 107
-CONSTANT: ESHUTDOWN 108
-CONSTANT: ETOOMANYREFS 109
-CONSTANT: ETIMEDOUT 110
-CONSTANT: ECONNREFUSED 111
-CONSTANT: EHOSTDOWN 112
-CONSTANT: EHOSTUNREACH 113
-CONSTANT: EALREADY 114
-CONSTANT: EINPROGRESS 115
-CONSTANT: ESTALE 116
-CONSTANT: EUCLEAN 117
-CONSTANT: ENOTNAM 118
-CONSTANT: ENAVAIL 119
-CONSTANT: EISNAM 120
-CONSTANT: EREMOTEIO 121
-CONSTANT: EDQUOT 122
-CONSTANT: ENOMEDIUM 123
-CONSTANT: EMEDIUMTYPE 124
-CONSTANT: ECANCELED 125
-CONSTANT: ENOKEY 126
-CONSTANT: EKEYEXPIRED 127
-CONSTANT: EKEYREVOKED 128
-CONSTANT: EKEYREJECTED 129
-CONSTANT: EOWNERDEAD 130
-CONSTANT: ENOTRECOVERABLE 131
-
-CONSTANT: SIGHUP 1
-CONSTANT: SIGINT 2
-CONSTANT: SIGQUIT 3
-CONSTANT: SIGILL 4
-CONSTANT: SIGTRAP 5
-CONSTANT: SIGABRT 6
-CONSTANT: SIGIOT 6
-CONSTANT: SIGBUS 7
-CONSTANT: SIGFPE 8
-CONSTANT: SIGKILL 9
-CONSTANT: SIGUSR1 10
-CONSTANT: SIGSEGV 11
-CONSTANT: SIGUSR2 12
-CONSTANT: SIGPIPE 13
-CONSTANT: SIGALRM 14
-CONSTANT: SIGTERM 15
-CONSTANT: SIGSTKFLT 16
-CONSTANT: SIGCHLD 17
-ALIAS: SIGCLD SIGCHLD
-CONSTANT: SIGCONT 18
-CONSTANT: SIGSTOP 19
-CONSTANT: SIGTSTP 20
-CONSTANT: SIGTTIN 21
-CONSTANT: SIGTTOU 22
-CONSTANT: SIGURG 23
-CONSTANT: SIGXCPU 24
-CONSTANT: SIGXFSZ 25
-CONSTANT: SIGVTALRM 26
-CONSTANT: SIGPROF 27
-CONSTANT: SIGWINCH 28
-CONSTANT: SIGIO 29
-ALIAS: SIGPOLL SIGIO
-CONSTANT: SIGPWR 30
-CONSTANT: SIGSYS 31
-
FUNCTION: ssize_t sendfile ( int out_fd, int in_fd, off_t* offset, size_t count ) ;
STRUCT: addrinfo
{ flags int }
- { family int }
+ { family int }
{ socktype int }
{ protocol int }
{ addrlen socklen_t }
{ d_namlen __uint8_t }
{ d_name { char __DARWIN_MAXNAMELEN+1 } } ;
-CONSTANT: EPERM 1
-CONSTANT: ENOENT 2
-CONSTANT: ESRCH 3
-CONSTANT: EINTR 4
-CONSTANT: EIO 5
-CONSTANT: ENXIO 6
-CONSTANT: E2BIG 7
-CONSTANT: ENOEXEC 8
-CONSTANT: EBADF 9
-CONSTANT: ECHILD 10
-CONSTANT: EDEADLK 11
-CONSTANT: ENOMEM 12
-CONSTANT: EACCES 13
-CONSTANT: EFAULT 14
-CONSTANT: ENOTBLK 15
-CONSTANT: EBUSY 16
-CONSTANT: EEXIST 17
-CONSTANT: EXDEV 18
-CONSTANT: ENODEV 19
-CONSTANT: ENOTDIR 20
-CONSTANT: EISDIR 21
-CONSTANT: EINVAL 22
-CONSTANT: ENFILE 23
-CONSTANT: EMFILE 24
-CONSTANT: ENOTTY 25
-CONSTANT: ETXTBSY 26
-CONSTANT: EFBIG 27
-CONSTANT: ENOSPC 28
-CONSTANT: ESPIPE 29
-CONSTANT: EROFS 30
-CONSTANT: EMLINK 31
-CONSTANT: EPIPE 32
-CONSTANT: EDOM 33
-CONSTANT: ERANGE 34
-CONSTANT: EAGAIN 35
-ALIAS: EWOULDBLOCK EAGAIN
-CONSTANT: EINPROGRESS 36
-CONSTANT: EALREADY 37
-CONSTANT: ENOTSOCK 38
-CONSTANT: EDESTADDRREQ 39
-CONSTANT: EMSGSIZE 40
-CONSTANT: EPROTOTYPE 41
-CONSTANT: ENOPROTOOPT 42
-CONSTANT: EPROTONOSUPPORT 43
-CONSTANT: ESOCKTNOSUPPORT 44
-CONSTANT: ENOTSUP 45
-CONSTANT: EPFNOSUPPORT 46
-CONSTANT: EAFNOSUPPORT 47
-CONSTANT: EADDRINUSE 48
-CONSTANT: EADDRNOTAVAIL 49
-CONSTANT: ENETDOWN 50
-CONSTANT: ENETUNREACH 51
-CONSTANT: ENETRESET 52
-CONSTANT: ECONNABORTED 53
-CONSTANT: ECONNRESET 54
-CONSTANT: ENOBUFS 55
-CONSTANT: EISCONN 56
-CONSTANT: ENOTCONN 57
-CONSTANT: ESHUTDOWN 58
-CONSTANT: ETOOMANYREFS 59
-CONSTANT: ETIMEDOUT 60
-CONSTANT: ECONNREFUSED 61
-CONSTANT: ELOOP 62
-CONSTANT: ENAMETOOLONG 63
-CONSTANT: EHOSTDOWN 64
-CONSTANT: EHOSTUNREACH 65
-CONSTANT: ENOTEMPTY 66
-CONSTANT: EPROCLIM 67
-CONSTANT: EUSERS 68
-CONSTANT: EDQUOT 69
-CONSTANT: ESTALE 70
-CONSTANT: EREMOTE 71
-CONSTANT: EBADRPC 72
-CONSTANT: ERPCMISMATCH 73
-CONSTANT: EPROGUNAVAIL 74
-CONSTANT: EPROGMISMATCH 75
-CONSTANT: EPROCUNAVAIL 76
-CONSTANT: ENOLCK 77
-CONSTANT: ENOSYS 78
-CONSTANT: EFTYPE 79
-CONSTANT: EAUTH 80
-CONSTANT: ENEEDAUTH 81
-CONSTANT: EPWROFF 82
-CONSTANT: EDEVERR 83
-CONSTANT: EOVERFLOW 84
-CONSTANT: EBADEXEC 85
-CONSTANT: EBADARCH 86
-CONSTANT: ESHLIBVERS 87
-CONSTANT: EBADMACHO 88
-CONSTANT: ECANCELED 89
-CONSTANT: EIDRM 90
-CONSTANT: ENOMSG 91
-CONSTANT: EILSEQ 92
-CONSTANT: ENOATTR 93
-CONSTANT: EBADMSG 94
-CONSTANT: EMULTIHOP 95
-CONSTANT: ENODATA 96
-CONSTANT: ENOLINK 97
-CONSTANT: ENOSR 98
-CONSTANT: ENOSTR 99
-CONSTANT: EPROTO 100
-CONSTANT: ETIME 101
-CONSTANT: EOPNOTSUPP 102
-CONSTANT: ENOPOLICY 103
-
-CONSTANT: SIGHUP 1
-CONSTANT: SIGINT 2
-CONSTANT: SIGQUIT 3
-CONSTANT: SIGILL 4
-CONSTANT: SIGTRAP 5
-CONSTANT: SIGABRT 6
-CONSTANT: SIGEMT 7
-CONSTANT: SIGFPE 8
-CONSTANT: SIGKILL 9
-CONSTANT: SIGBUS 10
-CONSTANT: SIGSEGV 11
-CONSTANT: SIGSYS 12
-CONSTANT: SIGPIPE 13
-CONSTANT: SIGALRM 14
-CONSTANT: SIGTERM 15
-CONSTANT: SIGURG 16
-CONSTANT: SIGSTOP 17
-CONSTANT: SIGTSTP 18
-CONSTANT: SIGCONT 19
-CONSTANT: SIGCHLD 20
-CONSTANT: SIGTTIN 21
-CONSTANT: SIGTTOU 22
-CONSTANT: SIGIO 23
-CONSTANT: SIGXCPU 24
-CONSTANT: SIGXFSZ 25
-CONSTANT: SIGVTALRM 26
-CONSTANT: SIGPROF 27
-CONSTANT: SIGWINCH 28
-CONSTANT: SIGINFO 29
-CONSTANT: SIGUSR1 30
-CONSTANT: SIGUSR2 31
-
STRUCT: sf_hdtr
{ headers void* }
{ hdr_cnt int }
unix.time unix.types vocabs vocabs.loader unix.ffi ;
IN: unix
-ERROR: unix-error errno message ;
-
-: (io-error) ( -- * ) errno dup strerror unix-error ;
-
-: io-error ( n -- ) 0 < [ (io-error) ] when ;
-
ERROR: unix-system-call-error args errno message word ;
: unix-call-failed? ( ret -- ? )