/[dtapublic]/projs/trunk/shared_source/c_tcl_base_7_5_w_mods/tclposixstr.c
ViewVC logotype

Contents of /projs/trunk/shared_source/c_tcl_base_7_5_w_mods/tclposixstr.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 67 - (show annotations) (download)
Mon Oct 31 00:57:34 2016 UTC (7 years, 6 months ago) by dashley
File MIME type: text/plain
File size: 28921 byte(s)
Header and footer cleanup.
1 /* $Header$ */
2 /*
3 * tclPosixStr.c --
4 *
5 * This file contains procedures that generate strings
6 * corresponding to various POSIX-related codes, such
7 * as errno and signals.
8 *
9 * Copyright (c) 1991-1994 The Regents of the University of California.
10 * Copyright (c) 1994-1996 Sun Microsystems, Inc.
11 *
12 * See the file "license.terms" for information on usage and redistribution
13 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
14 *
15 * RCS: @(#) $Id: tclposixstr.c,v 1.1.1.1 2001/06/13 04:45:10 dtashley Exp $
16 */
17
18 #include "tclInt.h"
19 #include "tclPort.h"
20
21 /*
22 *----------------------------------------------------------------------
23 *
24 * Tcl_ErrnoId --
25 *
26 * Return a textual identifier for the current errno value.
27 *
28 * Results:
29 * This procedure returns a machine-readable textual identifier
30 * that corresponds to the current errno value (e.g. "EPERM").
31 * The identifier is the same as the #define name in errno.h.
32 *
33 * Side effects:
34 * None.
35 *
36 *----------------------------------------------------------------------
37 */
38
39 char *
40 Tcl_ErrnoId()
41 {
42 switch (errno) {
43 #ifdef E2BIG
44 case E2BIG: return "E2BIG";
45 #endif
46 #ifdef EACCES
47 case EACCES: return "EACCES";
48 #endif
49 #ifdef EADDRINUSE
50 case EADDRINUSE: return "EADDRINUSE";
51 #endif
52 #ifdef EADDRNOTAVAIL
53 case EADDRNOTAVAIL: return "EADDRNOTAVAIL";
54 #endif
55 #ifdef EADV
56 case EADV: return "EADV";
57 #endif
58 #ifdef EAFNOSUPPORT
59 case EAFNOSUPPORT: return "EAFNOSUPPORT";
60 #endif
61 #ifdef EAGAIN
62 case EAGAIN: return "EAGAIN";
63 #endif
64 #ifdef EALIGN
65 case EALIGN: return "EALIGN";
66 #endif
67 #if defined(EALREADY) && (!defined(EBUSY) || (EALREADY != EBUSY ))
68 case EALREADY: return "EALREADY";
69 #endif
70 #ifdef EBADE
71 case EBADE: return "EBADE";
72 #endif
73 #ifdef EBADF
74 case EBADF: return "EBADF";
75 #endif
76 #ifdef EBADFD
77 case EBADFD: return "EBADFD";
78 #endif
79 #ifdef EBADMSG
80 case EBADMSG: return "EBADMSG";
81 #endif
82 #ifdef EBADR
83 case EBADR: return "EBADR";
84 #endif
85 #ifdef EBADRPC
86 case EBADRPC: return "EBADRPC";
87 #endif
88 #ifdef EBADRQC
89 case EBADRQC: return "EBADRQC";
90 #endif
91 #ifdef EBADSLT
92 case EBADSLT: return "EBADSLT";
93 #endif
94 #ifdef EBFONT
95 case EBFONT: return "EBFONT";
96 #endif
97 #ifdef EBUSY
98 case EBUSY: return "EBUSY";
99 #endif
100 #ifdef ECHILD
101 case ECHILD: return "ECHILD";
102 #endif
103 #ifdef ECHRNG
104 case ECHRNG: return "ECHRNG";
105 #endif
106 #ifdef ECOMM
107 case ECOMM: return "ECOMM";
108 #endif
109 #ifdef ECONNABORTED
110 case ECONNABORTED: return "ECONNABORTED";
111 #endif
112 #ifdef ECONNREFUSED
113 case ECONNREFUSED: return "ECONNREFUSED";
114 #endif
115 #ifdef ECONNRESET
116 case ECONNRESET: return "ECONNRESET";
117 #endif
118 #if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK))
119 case EDEADLK: return "EDEADLK";
120 #endif
121 #if defined(EDEADLOCK) && (!defined(EDEADLK) || (EDEADLOCK != EDEADLK))
122 case EDEADLOCK: return "EDEADLOCK";
123 #endif
124 #ifdef EDESTADDRREQ
125 case EDESTADDRREQ: return "EDESTADDRREQ";
126 #endif
127 #ifdef EDIRTY
128 case EDIRTY: return "EDIRTY";
129 #endif
130 #ifdef EDOM
131 case EDOM: return "EDOM";
132 #endif
133 #ifdef EDOTDOT
134 case EDOTDOT: return "EDOTDOT";
135 #endif
136 #ifdef EDQUOT
137 case EDQUOT: return "EDQUOT";
138 #endif
139 #ifdef EDUPPKG
140 case EDUPPKG: return "EDUPPKG";
141 #endif
142 #ifdef EEXIST
143 case EEXIST: return "EEXIST";
144 #endif
145 #ifdef EFAULT
146 case EFAULT: return "EFAULT";
147 #endif
148 #ifdef EFBIG
149 case EFBIG: return "EFBIG";
150 #endif
151 #ifdef EHOSTDOWN
152 case EHOSTDOWN: return "EHOSTDOWN";
153 #endif
154 #ifdef EHOSTUNREACH
155 case EHOSTUNREACH: return "EHOSTUNREACH";
156 #endif
157 #if defined(EIDRM) && (!defined(EINPROGRESS) || (EIDRM != EINPROGRESS))
158 case EIDRM: return "EIDRM";
159 #endif
160 #ifdef EINIT
161 case EINIT: return "EINIT";
162 #endif
163 #ifdef EINPROGRESS
164 case EINPROGRESS: return "EINPROGRESS";
165 #endif
166 #ifdef EINTR
167 case EINTR: return "EINTR";
168 #endif
169 #ifdef EINVAL
170 case EINVAL: return "EINVAL";
171 #endif
172 #ifdef EIO
173 case EIO: return "EIO";
174 #endif
175 #ifdef EISCONN
176 case EISCONN: return "EISCONN";
177 #endif
178 #ifdef EISDIR
179 case EISDIR: return "EISDIR";
180 #endif
181 #ifdef EISNAME
182 case EISNAM: return "EISNAM";
183 #endif
184 #ifdef ELBIN
185 case ELBIN: return "ELBIN";
186 #endif
187 #ifdef EL2HLT
188 case EL2HLT: return "EL2HLT";
189 #endif
190 #ifdef EL2NSYNC
191 case EL2NSYNC: return "EL2NSYNC";
192 #endif
193 #ifdef EL3HLT
194 case EL3HLT: return "EL3HLT";
195 #endif
196 #ifdef EL3RST
197 case EL3RST: return "EL3RST";
198 #endif
199 #ifdef ELIBACC
200 case ELIBACC: return "ELIBACC";
201 #endif
202 #ifdef ELIBBAD
203 case ELIBBAD: return "ELIBBAD";
204 #endif
205 #ifdef ELIBEXEC
206 case ELIBEXEC: return "ELIBEXEC";
207 #endif
208 #ifdef ELIBMAX
209 case ELIBMAX: return "ELIBMAX";
210 #endif
211 #ifdef ELIBSCN
212 case ELIBSCN: return "ELIBSCN";
213 #endif
214 #ifdef ELNRNG
215 case ELNRNG: return "ELNRNG";
216 #endif
217 #if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
218 case ELOOP: return "ELOOP";
219 #endif
220 #ifdef EMFILE
221 case EMFILE: return "EMFILE";
222 #endif
223 #ifdef EMLINK
224 case EMLINK: return "EMLINK";
225 #endif
226 #ifdef EMSGSIZE
227 case EMSGSIZE: return "EMSGSIZE";
228 #endif
229 #ifdef EMULTIHOP
230 case EMULTIHOP: return "EMULTIHOP";
231 #endif
232 #ifdef ENAMETOOLONG
233 case ENAMETOOLONG: return "ENAMETOOLONG";
234 #endif
235 #ifdef ENAVAIL
236 case ENAVAIL: return "ENAVAIL";
237 #endif
238 #ifdef ENET
239 case ENET: return "ENET";
240 #endif
241 #ifdef ENETDOWN
242 case ENETDOWN: return "ENETDOWN";
243 #endif
244 #ifdef ENETRESET
245 case ENETRESET: return "ENETRESET";
246 #endif
247 #ifdef ENETUNREACH
248 case ENETUNREACH: return "ENETUNREACH";
249 #endif
250 #ifdef ENFILE
251 case ENFILE: return "ENFILE";
252 #endif
253 #ifdef ENOANO
254 case ENOANO: return "ENOANO";
255 #endif
256 #if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR))
257 case ENOBUFS: return "ENOBUFS";
258 #endif
259 #ifdef ENOCSI
260 case ENOCSI: return "ENOCSI";
261 #endif
262 #if defined(ENODATA) && (!defined(ECONNREFUSED) || (ENODATA != ECONNREFUSED))
263 case ENODATA: return "ENODATA";
264 #endif
265 #ifdef ENODEV
266 case ENODEV: return "ENODEV";
267 #endif
268 #ifdef ENOENT
269 case ENOENT: return "ENOENT";
270 #endif
271 #ifdef ENOEXEC
272 case ENOEXEC: return "ENOEXEC";
273 #endif
274 #ifdef ENOLCK
275 case ENOLCK: return "ENOLCK";
276 #endif
277 #ifdef ENOLINK
278 case ENOLINK: return "ENOLINK";
279 #endif
280 #ifdef ENOMEM
281 case ENOMEM: return "ENOMEM";
282 #endif
283 #ifdef ENOMSG
284 case ENOMSG: return "ENOMSG";
285 #endif
286 #ifdef ENONET
287 case ENONET: return "ENONET";
288 #endif
289 #ifdef ENOPKG
290 case ENOPKG: return "ENOPKG";
291 #endif
292 #ifdef ENOPROTOOPT
293 case ENOPROTOOPT: return "ENOPROTOOPT";
294 #endif
295 #ifdef ENOSPC
296 case ENOSPC: return "ENOSPC";
297 #endif
298 #if defined(ENOSR) && (!defined(ENAMETOOLONG) || (ENAMETOOLONG != ENOSR))
299 case ENOSR: return "ENOSR";
300 #endif
301 #if defined(ENOSTR) && (!defined(ENOTTY) || (ENOTTY != ENOSTR))
302 case ENOSTR: return "ENOSTR";
303 #endif
304 #ifdef ENOSYM
305 case ENOSYM: return "ENOSYM";
306 #endif
307 #ifdef ENOSYS
308 case ENOSYS: return "ENOSYS";
309 #endif
310 #ifdef ENOTBLK
311 case ENOTBLK: return "ENOTBLK";
312 #endif
313 #ifdef ENOTCONN
314 case ENOTCONN: return "ENOTCONN";
315 #endif
316 #ifdef ENOTDIR
317 case ENOTDIR: return "ENOTDIR";
318 #endif
319 #if defined(ENOTEMPTY) && (!defined(EEXIST) || (ENOTEMPTY != EEXIST))
320 case ENOTEMPTY: return "ENOTEMPTY";
321 #endif
322 #ifdef ENOTNAM
323 case ENOTNAM: return "ENOTNAM";
324 #endif
325 #ifdef ENOTSOCK
326 case ENOTSOCK: return "ENOTSOCK";
327 #endif
328 #ifdef ENOTSUP
329 case ENOTSUP: return "ENOTSUP";
330 #endif
331 #ifdef ENOTTY
332 case ENOTTY: return "ENOTTY";
333 #endif
334 #ifdef ENOTUNIQ
335 case ENOTUNIQ: return "ENOTUNIQ";
336 #endif
337 #ifdef ENXIO
338 case ENXIO: return "ENXIO";
339 #endif
340 #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))
341 case EOPNOTSUPP: return "EOPNOTSUPP";
342 #endif
343 #ifdef EPERM
344 case EPERM: return "EPERM";
345 #endif
346 #if defined(EPFNOSUPPORT) && (!defined(ENOLCK) || (ENOLCK != EPFNOSUPPORT))
347 case EPFNOSUPPORT: return "EPFNOSUPPORT";
348 #endif
349 #ifdef EPIPE
350 case EPIPE: return "EPIPE";
351 #endif
352 #ifdef EPROCLIM
353 case EPROCLIM: return "EPROCLIM";
354 #endif
355 #ifdef EPROCUNAVAIL
356 case EPROCUNAVAIL: return "EPROCUNAVAIL";
357 #endif
358 #ifdef EPROGMISMATCH
359 case EPROGMISMATCH: return "EPROGMISMATCH";
360 #endif
361 #ifdef EPROGUNAVAIL
362 case EPROGUNAVAIL: return "EPROGUNAVAIL";
363 #endif
364 #ifdef EPROTO
365 case EPROTO: return "EPROTO";
366 #endif
367 #ifdef EPROTONOSUPPORT
368 case EPROTONOSUPPORT: return "EPROTONOSUPPORT";
369 #endif
370 #ifdef EPROTOTYPE
371 case EPROTOTYPE: return "EPROTOTYPE";
372 #endif
373 #ifdef ERANGE
374 case ERANGE: return "ERANGE";
375 #endif
376 #if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
377 case EREFUSED: return "EREFUSED";
378 #endif
379 #ifdef EREMCHG
380 case EREMCHG: return "EREMCHG";
381 #endif
382 #ifdef EREMDEV
383 case EREMDEV: return "EREMDEV";
384 #endif
385 #ifdef EREMOTE
386 case EREMOTE: return "EREMOTE";
387 #endif
388 #ifdef EREMOTEIO
389 case EREMOTEIO: return "EREMOTEIO";
390 #endif
391 #ifdef EREMOTERELEASE
392 case EREMOTERELEASE: return "EREMOTERELEASE";
393 #endif
394 #ifdef EROFS
395 case EROFS: return "EROFS";
396 #endif
397 #ifdef ERPCMISMATCH
398 case ERPCMISMATCH: return "ERPCMISMATCH";
399 #endif
400 #ifdef ERREMOTE
401 case ERREMOTE: return "ERREMOTE";
402 #endif
403 #ifdef ESHUTDOWN
404 case ESHUTDOWN: return "ESHUTDOWN";
405 #endif
406 #ifdef ESOCKTNOSUPPORT
407 case ESOCKTNOSUPPORT: return "ESOCKTNOSUPPORT";
408 #endif
409 #ifdef ESPIPE
410 case ESPIPE: return "ESPIPE";
411 #endif
412 #ifdef ESRCH
413 case ESRCH: return "ESRCH";
414 #endif
415 #ifdef ESRMNT
416 case ESRMNT: return "ESRMNT";
417 #endif
418 #ifdef ESTALE
419 case ESTALE: return "ESTALE";
420 #endif
421 #ifdef ESUCCESS
422 case ESUCCESS: return "ESUCCESS";
423 #endif
424 #if defined(ETIME) && (!defined(ELOOP) || (ETIME != ELOOP))
425 case ETIME: return "ETIME";
426 #endif
427 #if defined(ETIMEDOUT) && (!defined(ENOSTR) || (ETIMEDOUT != ENOSTR))
428 case ETIMEDOUT: return "ETIMEDOUT";
429 #endif
430 #ifdef ETOOMANYREFS
431 case ETOOMANYREFS: return "ETOOMANYREFS";
432 #endif
433 #ifdef ETXTBSY
434 case ETXTBSY: return "ETXTBSY";
435 #endif
436 #ifdef EUCLEAN
437 case EUCLEAN: return "EUCLEAN";
438 #endif
439 #ifdef EUNATCH
440 case EUNATCH: return "EUNATCH";
441 #endif
442 #ifdef EUSERS
443 case EUSERS: return "EUSERS";
444 #endif
445 #ifdef EVERSION
446 case EVERSION: return "EVERSION";
447 #endif
448 #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
449 case EWOULDBLOCK: return "EWOULDBLOCK";
450 #endif
451 #ifdef EXDEV
452 case EXDEV: return "EXDEV";
453 #endif
454 #ifdef EXFULL
455 case EXFULL: return "EXFULL";
456 #endif
457 }
458 return "unknown error";
459 }
460
461 /*
462 *----------------------------------------------------------------------
463 *
464 * Tcl_ErrnoMsg --
465 *
466 * Return a human-readable message corresponding to a given
467 * errno value.
468 *
469 * Results:
470 * The return value is the standard POSIX error message for
471 * errno. This procedure is used instead of strerror because
472 * strerror returns slightly different values on different
473 * machines (e.g. different capitalizations), which cause
474 * problems for things such as regression tests. This procedure
475 * provides messages for most standard errors, then it calls
476 * strerror for things it doesn't understand.
477 *
478 * Side effects:
479 * None.
480 *
481 *----------------------------------------------------------------------
482 */
483
484 char *
485 Tcl_ErrnoMsg(err)
486 int err; /* Error number (such as in errno variable). */
487 {
488 switch (err) {
489 #ifdef E2BIG
490 case E2BIG: return "argument list too long";
491 #endif
492 #ifdef EACCES
493 case EACCES: return "permission denied";
494 #endif
495 #ifdef EADDRINUSE
496 case EADDRINUSE: return "address already in use";
497 #endif
498 #ifdef EADDRNOTAVAIL
499 case EADDRNOTAVAIL: return "can't assign requested address";
500 #endif
501 #ifdef EADV
502 case EADV: return "advertise error";
503 #endif
504 #ifdef EAFNOSUPPORT
505 case EAFNOSUPPORT: return "address family not supported by protocol family";
506 #endif
507 #ifdef EAGAIN
508 case EAGAIN: return "resource temporarily unavailable";
509 #endif
510 #ifdef EALIGN
511 case EALIGN: return "EALIGN";
512 #endif
513 #if defined(EALREADY) && (!defined(EBUSY) || (EALREADY != EBUSY ))
514 case EALREADY: return "operation already in progress";
515 #endif
516 #ifdef EBADE
517 case EBADE: return "bad exchange descriptor";
518 #endif
519 #ifdef EBADF
520 case EBADF: return "bad file number";
521 #endif
522 #ifdef EBADFD
523 case EBADFD: return "file descriptor in bad state";
524 #endif
525 #ifdef EBADMSG
526 case EBADMSG: return "not a data message";
527 #endif
528 #ifdef EBADR
529 case EBADR: return "bad request descriptor";
530 #endif
531 #ifdef EBADRPC
532 case EBADRPC: return "RPC structure is bad";
533 #endif
534 #ifdef EBADRQC
535 case EBADRQC: return "bad request code";
536 #endif
537 #ifdef EBADSLT
538 case EBADSLT: return "invalid slot";
539 #endif
540 #ifdef EBFONT
541 case EBFONT: return "bad font file format";
542 #endif
543 #ifdef EBUSY
544 case EBUSY: return "file busy";
545 #endif
546 #ifdef ECHILD
547 case ECHILD: return "no children";
548 #endif
549 #ifdef ECHRNG
550 case ECHRNG: return "channel number out of range";
551 #endif
552 #ifdef ECOMM
553 case ECOMM: return "communication error on send";
554 #endif
555 #ifdef ECONNABORTED
556 case ECONNABORTED: return "software caused connection abort";
557 #endif
558 #ifdef ECONNREFUSED
559 case ECONNREFUSED: return "connection refused";
560 #endif
561 #ifdef ECONNRESET
562 case ECONNRESET: return "connection reset by peer";
563 #endif
564 #if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK))
565 case EDEADLK: return "resource deadlock avoided";
566 #endif
567 #if defined(EDEADLOCK) && (!defined(EDEADLK) || (EDEADLOCK != EDEADLK))
568 case EDEADLOCK: return "resource deadlock avoided";
569 #endif
570 #ifdef EDESTADDRREQ
571 case EDESTADDRREQ: return "destination address required";
572 #endif
573 #ifdef EDIRTY
574 case EDIRTY: return "mounting a dirty fs w/o force";
575 #endif
576 #ifdef EDOM
577 case EDOM: return "math argument out of range";
578 #endif
579 #ifdef EDOTDOT
580 case EDOTDOT: return "cross mount point";
581 #endif
582 #ifdef EDQUOT
583 case EDQUOT: return "disk quota exceeded";
584 #endif
585 #ifdef EDUPPKG
586 case EDUPPKG: return "duplicate package name";
587 #endif
588 #ifdef EEXIST
589 case EEXIST: return "file already exists";
590 #endif
591 #ifdef EFAULT
592 case EFAULT: return "bad address in system call argument";
593 #endif
594 #ifdef EFBIG
595 case EFBIG: return "file too large";
596 #endif
597 #ifdef EHOSTDOWN
598 case EHOSTDOWN: return "host is down";
599 #endif
600 #ifdef EHOSTUNREACH
601 case EHOSTUNREACH: return "host is unreachable";
602 #endif
603 #if defined(EIDRM) && (!defined(EINPROGRESS) || (EIDRM != EINPROGRESS))
604 case EIDRM: return "identifier removed";
605 #endif
606 #ifdef EINIT
607 case EINIT: return "initialization error";
608 #endif
609 #ifdef EINPROGRESS
610 case EINPROGRESS: return "operation now in progress";
611 #endif
612 #ifdef EINTR
613 case EINTR: return "interrupted system call";
614 #endif
615 #ifdef EINVAL
616 case EINVAL: return "invalid argument";
617 #endif
618 #ifdef EIO
619 case EIO: return "I/O error";
620 #endif
621 #ifdef EISCONN
622 case EISCONN: return "socket is already connected";
623 #endif
624 #ifdef EISDIR
625 case EISDIR: return "illegal operation on a directory";
626 #endif
627 #ifdef EISNAME
628 case EISNAM: return "is a name file";
629 #endif
630 #ifdef ELBIN
631 case ELBIN: return "ELBIN";
632 #endif
633 #ifdef EL2HLT
634 case EL2HLT: return "level 2 halted";
635 #endif
636 #ifdef EL2NSYNC
637 case EL2NSYNC: return "level 2 not synchronized";
638 #endif
639 #ifdef EL3HLT
640 case EL3HLT: return "level 3 halted";
641 #endif
642 #ifdef EL3RST
643 case EL3RST: return "level 3 reset";
644 #endif
645 #ifdef ELIBACC
646 case ELIBACC: return "can not access a needed shared library";
647 #endif
648 #ifdef ELIBBAD
649 case ELIBBAD: return "accessing a corrupted shared library";
650 #endif
651 #ifdef ELIBEXEC
652 case ELIBEXEC: return "can not exec a shared library directly";
653 #endif
654 #ifdef ELIBMAX
655 case ELIBMAX: return
656 "attempting to link in more shared libraries than system limit";
657 #endif
658 #ifdef ELIBSCN
659 case ELIBSCN: return ".lib section in a.out corrupted";
660 #endif
661 #ifdef ELNRNG
662 case ELNRNG: return "link number out of range";
663 #endif
664 #if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
665 case ELOOP: return "too many levels of symbolic links";
666 #endif
667 #ifdef EMFILE
668 case EMFILE: return "too many open files";
669 #endif
670 #ifdef EMLINK
671 case EMLINK: return "too many links";
672 #endif
673 #ifdef EMSGSIZE
674 case EMSGSIZE: return "message too long";
675 #endif
676 #ifdef EMULTIHOP
677 case EMULTIHOP: return "multihop attempted";
678 #endif
679 #ifdef ENAMETOOLONG
680 case ENAMETOOLONG: return "file name too long";
681 #endif
682 #ifdef ENAVAIL
683 case ENAVAIL: return "not available";
684 #endif
685 #ifdef ENET
686 case ENET: return "ENET";
687 #endif
688 #ifdef ENETDOWN
689 case ENETDOWN: return "network is down";
690 #endif
691 #ifdef ENETRESET
692 case ENETRESET: return "network dropped connection on reset";
693 #endif
694 #ifdef ENETUNREACH
695 case ENETUNREACH: return "network is unreachable";
696 #endif
697 #ifdef ENFILE
698 case ENFILE: return "file table overflow";
699 #endif
700 #ifdef ENOANO
701 case ENOANO: return "anode table overflow";
702 #endif
703 #if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR))
704 case ENOBUFS: return "no buffer space available";
705 #endif
706 #ifdef ENOCSI
707 case ENOCSI: return "no CSI structure available";
708 #endif
709 #if defined(ENODATA) && (!defined(ECONNREFUSED) || (ENODATA != ECONNREFUSED))
710 case ENODATA: return "no data available";
711 #endif
712 #ifdef ENODEV
713 case ENODEV: return "no such device";
714 #endif
715 #ifdef ENOENT
716 case ENOENT: return "no such file or directory";
717 #endif
718 #ifdef ENOEXEC
719 case ENOEXEC: return "exec format error";
720 #endif
721 #ifdef ENOLCK
722 case ENOLCK: return "no locks available";
723 #endif
724 #ifdef ENOLINK
725 case ENOLINK: return "link has be severed";
726 #endif
727 #ifdef ENOMEM
728 case ENOMEM: return "not enough memory";
729 #endif
730 #ifdef ENOMSG
731 case ENOMSG: return "no message of desired type";
732 #endif
733 #ifdef ENONET
734 case ENONET: return "machine is not on the network";
735 #endif
736 #ifdef ENOPKG
737 case ENOPKG: return "package not installed";
738 #endif
739 #ifdef ENOPROTOOPT
740 case ENOPROTOOPT: return "bad protocol option";
741 #endif
742 #ifdef ENOSPC
743 case ENOSPC: return "no space left on device";
744 #endif
745 #if defined(ENOSR) && (!defined(ENAMETOOLONG) || (ENAMETOOLONG != ENOSR))
746 case ENOSR: return "out of stream resources";
747 #endif
748 #if defined(ENOSTR) && (!defined(ENOTTY) || (ENOTTY != ENOSTR))
749 case ENOSTR: return "not a stream device";
750 #endif
751 #ifdef ENOSYM
752 case ENOSYM: return "unresolved symbol name";
753 #endif
754 #ifdef ENOSYS
755 case ENOSYS: return "function not implemented";
756 #endif
757 #ifdef ENOTBLK
758 case ENOTBLK: return "block device required";
759 #endif
760 #ifdef ENOTCONN
761 case ENOTCONN: return "socket is not connected";
762 #endif
763 #ifdef ENOTDIR
764 case ENOTDIR: return "not a directory";
765 #endif
766 #if defined(ENOTEMPTY) && (!defined(EEXIST) || (ENOTEMPTY != EEXIST))
767 case ENOTEMPTY: return "directory not empty";
768 #endif
769 #ifdef ENOTNAM
770 case ENOTNAM: return "not a name file";
771 #endif
772 #ifdef ENOTSOCK
773 case ENOTSOCK: return "socket operation on non-socket";
774 #endif
775 #ifdef ENOTSUP
776 case ENOTSUP: return "operation not supported";
777 #endif
778 #ifdef ENOTTY
779 case ENOTTY: return "inappropriate device for ioctl";
780 #endif
781 #ifdef ENOTUNIQ
782 case ENOTUNIQ: return "name not unique on network";
783 #endif
784 #ifdef ENXIO
785 case ENXIO: return "no such device or address";
786 #endif
787 #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))
788 case EOPNOTSUPP: return "operation not supported on socket";
789 #endif
790 #ifdef EPERM
791 case EPERM: return "not owner";
792 #endif
793 #if defined(EPFNOSUPPORT) && (!defined(ENOLCK) || (ENOLCK != EPFNOSUPPORT))
794 case EPFNOSUPPORT: return "protocol family not supported";
795 #endif
796 #ifdef EPIPE
797 case EPIPE: return "broken pipe";
798 #endif
799 #ifdef EPROCLIM
800 case EPROCLIM: return "too many processes";
801 #endif
802 #ifdef EPROCUNAVAIL
803 case EPROCUNAVAIL: return "bad procedure for program";
804 #endif
805 #ifdef EPROGMISMATCH
806 case EPROGMISMATCH: return "program version wrong";
807 #endif
808 #ifdef EPROGUNAVAIL
809 case EPROGUNAVAIL: return "RPC program not available";
810 #endif
811 #ifdef EPROTO
812 case EPROTO: return "protocol error";
813 #endif
814 #ifdef EPROTONOSUPPORT
815 case EPROTONOSUPPORT: return "protocol not suppored";
816 #endif
817 #ifdef EPROTOTYPE
818 case EPROTOTYPE: return "protocol wrong type for socket";
819 #endif
820 #ifdef ERANGE
821 case ERANGE: return "math result unrepresentable";
822 #endif
823 #if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
824 case EREFUSED: return "EREFUSED";
825 #endif
826 #ifdef EREMCHG
827 case EREMCHG: return "remote address changed";
828 #endif
829 #ifdef EREMDEV
830 case EREMDEV: return "remote device";
831 #endif
832 #ifdef EREMOTE
833 case EREMOTE: return "pathname hit remote file system";
834 #endif
835 #ifdef EREMOTEIO
836 case EREMOTEIO: return "remote i/o error";
837 #endif
838 #ifdef EREMOTERELEASE
839 case EREMOTERELEASE: return "EREMOTERELEASE";
840 #endif
841 #ifdef EROFS
842 case EROFS: return "read-only file system";
843 #endif
844 #ifdef ERPCMISMATCH
845 case ERPCMISMATCH: return "RPC version is wrong";
846 #endif
847 #ifdef ERREMOTE
848 case ERREMOTE: return "object is remote";
849 #endif
850 #ifdef ESHUTDOWN
851 case ESHUTDOWN: return "can't send afer socket shutdown";
852 #endif
853 #ifdef ESOCKTNOSUPPORT
854 case ESOCKTNOSUPPORT: return "socket type not supported";
855 #endif
856 #ifdef ESPIPE
857 case ESPIPE: return "invalid seek";
858 #endif
859 #ifdef ESRCH
860 case ESRCH: return "no such process";
861 #endif
862 #ifdef ESRMNT
863 case ESRMNT: return "srmount error";
864 #endif
865 #ifdef ESTALE
866 case ESTALE: return "stale remote file handle";
867 #endif
868 #ifdef ESUCCESS
869 case ESUCCESS: return "Error 0";
870 #endif
871 #if defined(ETIME) && (!defined(ELOOP) || (ETIME != ELOOP))
872 case ETIME: return "timer expired";
873 #endif
874 #if defined(ETIMEDOUT) && (!defined(ENOSTR) || (ETIMEDOUT != ENOSTR))
875 case ETIMEDOUT: return "connection timed out";
876 #endif
877 #ifdef ETOOMANYREFS
878 case ETOOMANYREFS: return "too many references: can't splice";
879 #endif
880 #ifdef ETXTBSY
881 case ETXTBSY: return "text file or pseudo-device busy";
882 #endif
883 #ifdef EUCLEAN
884 case EUCLEAN: return "structure needs cleaning";
885 #endif
886 #ifdef EUNATCH
887 case EUNATCH: return "protocol driver not attached";
888 #endif
889 #ifdef EUSERS
890 case EUSERS: return "too many users";
891 #endif
892 #ifdef EVERSION
893 case EVERSION: return "version mismatch";
894 #endif
895 #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
896 case EWOULDBLOCK: return "operation would block";
897 #endif
898 #ifdef EXDEV
899 case EXDEV: return "cross-domain link";
900 #endif
901 #ifdef EXFULL
902 case EXFULL: return "message tables full";
903 #endif
904 default:
905 #ifdef NO_STRERROR
906 return "unknown POSIX error";
907 #else
908 return strerror(errno);
909 #endif
910 }
911 }
912
913 /*
914 *----------------------------------------------------------------------
915 *
916 * Tcl_SignalId --
917 *
918 * Return a textual identifier for a signal number.
919 *
920 * Results:
921 * This procedure returns a machine-readable textual identifier
922 * that corresponds to sig. The identifier is the same as the
923 * #define name in signal.h.
924 *
925 * Side effects:
926 * None.
927 *
928 *----------------------------------------------------------------------
929 */
930
931 char *
932 Tcl_SignalId(sig)
933 int sig; /* Number of signal. */
934 {
935 switch (sig) {
936 #ifdef SIGABRT
937 case SIGABRT: return "SIGABRT";
938 #endif
939 #ifdef SIGALRM
940 case SIGALRM: return "SIGALRM";
941 #endif
942 #ifdef SIGBUS
943 case SIGBUS: return "SIGBUS";
944 #endif
945 #ifdef SIGCHLD
946 case SIGCHLD: return "SIGCHLD";
947 #endif
948 #if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD))
949 case SIGCLD: return "SIGCLD";
950 #endif
951 #ifdef SIGCONT
952 case SIGCONT: return "SIGCONT";
953 #endif
954 #if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU))
955 case SIGEMT: return "SIGEMT";
956 #endif
957 #ifdef SIGFPE
958 case SIGFPE: return "SIGFPE";
959 #endif
960 #ifdef SIGHUP
961 case SIGHUP: return "SIGHUP";
962 #endif
963 #ifdef SIGILL
964 case SIGILL: return "SIGILL";
965 #endif
966 #ifdef SIGINT
967 case SIGINT: return "SIGINT";
968 #endif
969 #ifdef SIGIO
970 case SIGIO: return "SIGIO";
971 #endif
972 #if defined(SIGIOT) && (!defined(SIGABRT) || (SIGIOT != SIGABRT))
973 case SIGIOT: return "SIGIOT";
974 #endif
975 #ifdef SIGKILL
976 case SIGKILL: return "SIGKILL";
977 #endif
978 #if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) && (!defined(SIGURG) || (SIGLOST != SIGURG)) && (!defined(SIGPROF) || (SIGLOST != SIGPROF)) && (!defined(SIGIO) || (SIGLOST != SIGIO))
979 case SIGLOST: return "SIGLOST";
980 #endif
981 #ifdef SIGPIPE
982 case SIGPIPE: return "SIGPIPE";
983 #endif
984 #if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO))
985 case SIGPOLL: return "SIGPOLL";
986 #endif
987 #ifdef SIGPROF
988 case SIGPROF: return "SIGPROF";
989 #endif
990 #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ))
991 case SIGPWR: return "SIGPWR";
992 #endif
993 #ifdef SIGQUIT
994 case SIGQUIT: return "SIGQUIT";
995 #endif
996 #ifdef SIGSEGV
997 case SIGSEGV: return "SIGSEGV";
998 #endif
999 #ifdef SIGSTOP
1000 case SIGSTOP: return "SIGSTOP";
1001 #endif
1002 #ifdef SIGSYS
1003 case SIGSYS: return "SIGSYS";
1004 #endif
1005 #ifdef SIGTERM
1006 case SIGTERM: return "SIGTERM";
1007 #endif
1008 #ifdef SIGTRAP
1009 case SIGTRAP: return "SIGTRAP";
1010 #endif
1011 #ifdef SIGTSTP
1012 case SIGTSTP: return "SIGTSTP";
1013 #endif
1014 #ifdef SIGTTIN
1015 case SIGTTIN: return "SIGTTIN";
1016 #endif
1017 #ifdef SIGTTOU
1018 case SIGTTOU: return "SIGTTOU";
1019 #endif
1020 #if defined(SIGURG) && (!defined(SIGIO) || (SIGURG != SIGIO))
1021 case SIGURG: return "SIGURG";
1022 #endif
1023 #if defined(SIGUSR1) && (!defined(SIGIO) || (SIGUSR1 != SIGIO))
1024 case SIGUSR1: return "SIGUSR1";
1025 #endif
1026 #if defined(SIGUSR2) && (!defined(SIGURG) || (SIGUSR2 != SIGURG))
1027 case SIGUSR2: return "SIGUSR2";
1028 #endif
1029 #ifdef SIGVTALRM
1030 case SIGVTALRM: return "SIGVTALRM";
1031 #endif
1032 #ifdef SIGWINCH
1033 case SIGWINCH: return "SIGWINCH";
1034 #endif
1035 #ifdef SIGXCPU
1036 case SIGXCPU: return "SIGXCPU";
1037 #endif
1038 #ifdef SIGXFSZ
1039 case SIGXFSZ: return "SIGXFSZ";
1040 #endif
1041 }
1042 return "unknown signal";
1043 }
1044
1045 /*
1046 *----------------------------------------------------------------------
1047 *
1048 * Tcl_SignalMsg --
1049 *
1050 * Return a human-readable message describing a signal.
1051 *
1052 * Results:
1053 * This procedure returns a string describing sig that should
1054 * make sense to a human. It may not be easy for a machine
1055 * to parse.
1056 *
1057 * Side effects:
1058 * None.
1059 *
1060 *----------------------------------------------------------------------
1061 */
1062
1063 char *
1064 Tcl_SignalMsg(sig)
1065 int sig; /* Number of signal. */
1066 {
1067 switch (sig) {
1068 #ifdef SIGABRT
1069 case SIGABRT: return "SIGABRT";
1070 #endif
1071 #ifdef SIGALRM
1072 case SIGALRM: return "alarm clock";
1073 #endif
1074 #ifdef SIGBUS
1075 case SIGBUS: return "bus error";
1076 #endif
1077 #ifdef SIGCHLD
1078 case SIGCHLD: return "child status changed";
1079 #endif
1080 #if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD))
1081 case SIGCLD: return "child status changed";
1082 #endif
1083 #ifdef SIGCONT
1084 case SIGCONT: return "continue after stop";
1085 #endif
1086 #if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU))
1087 case SIGEMT: return "EMT instruction";
1088 #endif
1089 #ifdef SIGFPE
1090 case SIGFPE: return "floating-point exception";
1091 #endif
1092 #ifdef SIGHUP
1093 case SIGHUP: return "hangup";
1094 #endif
1095 #ifdef SIGILL
1096 case SIGILL: return "illegal instruction";
1097 #endif
1098 #ifdef SIGINT
1099 case SIGINT: return "interrupt";
1100 #endif
1101 #ifdef SIGIO
1102 case SIGIO: return "input/output possible on file";
1103 #endif
1104 #if defined(SIGIOT) && (!defined(SIGABRT) || (SIGABRT != SIGIOT))
1105 case SIGIOT: return "IOT instruction";
1106 #endif
1107 #ifdef SIGKILL
1108 case SIGKILL: return "kill signal";
1109 #endif
1110 #if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) && (!defined(SIGURG) || (SIGLOST != SIGURG)) && (!defined(SIGPROF) || (SIGLOST != SIGPROF)) && (!defined(SIGIO) || (SIGLOST != SIGIO))
1111 case SIGLOST: return "resource lost";
1112 #endif
1113 #ifdef SIGPIPE
1114 case SIGPIPE: return "write on pipe with no readers";
1115 #endif
1116 #if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO))
1117 case SIGPOLL: return "input/output possible on file";
1118 #endif
1119 #ifdef SIGPROF
1120 case SIGPROF: return "profiling alarm";
1121 #endif
1122 #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ))
1123 case SIGPWR: return "power-fail restart";
1124 #endif
1125 #ifdef SIGQUIT
1126 case SIGQUIT: return "quit signal";
1127 #endif
1128 #ifdef SIGSEGV
1129 case SIGSEGV: return "segmentation violation";
1130 #endif
1131 #ifdef SIGSTOP
1132 case SIGSTOP: return "stop";
1133 #endif
1134 #ifdef SIGSYS
1135 case SIGSYS: return "bad argument to system call";
1136 #endif
1137 #ifdef SIGTERM
1138 case SIGTERM: return "software termination signal";
1139 #endif
1140 #ifdef SIGTRAP
1141 case SIGTRAP: return "trace trap";
1142 #endif
1143 #ifdef SIGTSTP
1144 case SIGTSTP: return "stop signal from tty";
1145 #endif
1146 #ifdef SIGTTIN
1147 case SIGTTIN: return "background tty read";
1148 #endif
1149 #ifdef SIGTTOU
1150 case SIGTTOU: return "background tty write";
1151 #endif
1152 #if defined(SIGURG) && (!defined(SIGIO) || (SIGURG != SIGIO))
1153 case SIGURG: return "urgent I/O condition";
1154 #endif
1155 #if defined(SIGUSR1) && (!defined(SIGIO) || (SIGUSR1 != SIGIO))
1156 case SIGUSR1: return "user-defined signal 1";
1157 #endif
1158 #if defined(SIGUSR2) && (!defined(SIGURG) || (SIGUSR2 != SIGURG))
1159 case SIGUSR2: return "user-defined signal 2";
1160 #endif
1161 #ifdef SIGVTALRM
1162 case SIGVTALRM: return "virtual time alarm";
1163 #endif
1164 #ifdef SIGWINCH
1165 case SIGWINCH: return "window changed";
1166 #endif
1167 #ifdef SIGXCPU
1168 case SIGXCPU: return "exceeded CPU time limit";
1169 #endif
1170 #ifdef SIGXFSZ
1171 case SIGXFSZ: return "exceeded file size limit";
1172 #endif
1173 }
1174 return "unknown signal";
1175 }
1176
1177 /* End of tclposixstr.c */

Properties

Name Value
svn:keywords Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25