1/* 2 *errno.h shall give positive values for the 3 *error number symbolic constants 4 *author:ysun@lnxw.com 5 */ 6#include <stdio.h> 7#include <errno.h> 8#define PTP_PASS 0 9#define PTP_FAIL 1 10#define PTP_UNRESOLVED 2 11#define PTP_NOTINUSE 3 12#define PTP_UNSUPPORTED 4 13#define PTP_UNTESTED 5 14#define PTP_UNINITIATED 6 15#define PTP_NORESULT 7 16 17 18 19struct unique { 20 int value; 21 char *name; 22} sym[] = {{E2BIG,"E2BIG"},{EACCES,"EACCES"}, 23 {EADDRINUSE,"EADDRINUSE"}, 24 {EADDRNOTAVAIL,"EADDRNOTAVAIL"}, 25 {EAFNOSUPPORT,"EAFNOSUPPORT"}, 26 {EAGAIN,"EAGAIN"}, 27 {EALREADY,"EALREADY"}, {EBADF,"EBADF"}, 28 {EBADMSG,"EBADMSG"},{EBUSY,"EBUSY"}, 29 {ECANCELED,"ECANCELED"},{ECHILD,"ECHILD"}, 30 {ECONNABORTED,"ECONNABORTED"}, 31 {ECONNREFUSED,"ECONNREFUSED"}, 32 {ECONNRESET,"ECONNRESET"},{EDEADLK,"EDEADLK"}, 33 {EDESTADDRREQ,"EDESTADDRREQ"},{EDOM,"EDOM"}, 34 {EDQUOT,"EDQUOT"},{EEXIST,"EEXIST"}, 35 {EFAULT,"EFAULT"},{EFBIG,"EFBIG"}, 36 {EHOSTUNREACH,"EHOSTUNREACH"}, 37 {EIDRM,"EIDRM"},{EILSEQ,"EILSEQ"}, 38 {EINPROGRESS,"EINPROGRESS"}, 39 {EINTR,"EINTR"},{EINVAL,"EINVAL"}, 40 {EIO,"EIO"},{EISCONN,"EISCONN"}, 41 {EISDIR,"EISDIR"},{ELOOP,"ELOOP"}, 42 {EMFILE,"EMFILE"},{EMLINK,"EMLINK"}, 43 {EMSGSIZE,"EMSGSIZE"},{EMULTIHOP,"EMULTIHOP"}, 44 {ENAMETOOLONG,"ENAMETOOLONG"}, 45 {ENETDOWN,"ENETDOWN"}, 46 {ENETRESET,"ENETRESET"},{ENETUNREACH,"ENETUNREACH"}, 47 {ENFILE,"ENFILE"},{ENOBUFS,"ENOBUFS"}, 48 {ENODATA,"ENODATA"},{ENODEV,"ENODEV"}, 49 {ENOENT,"ENOENT"},{ENOEXEC,"ENOEXEC"}, 50 {ENOLCK,"ENOLCK"},{ENOLINK,"ENOLINK"}, 51 {ENOMEM,"ENOMEM"},{ENOMSG,"ENOMSG"}, 52 {ENOPROTOOPT,"ENOPROTOOPT"},{ENOSPC,"ENOSPC"}, 53 {ENOSR,"ENOSR"},{ENOSTR,"ENOSTR"}, 54 {ENOSYS,"ENOSYS"},{ENOTCONN,"ENOTCONN"}, 55 {ENOTDIR,"ENOTDIR"},{ENOTEMPTY,"ENOTEMPTY"}, 56 {ENOTSOCK,"ENOTSOCK"},{ENOTSUP,"ENOTSUP"}, 57 {ENOTTY,"ENOTTY"},{ENXIO,"ENXIO"}, 58 {EOPNOTSUPP,"EOPNOTSUPP"},{EOVERFLOW,"EOVERFLOW"}, 59 {EPERM,"EPERM"},{EPIPE,"EPIPE"},{EPROTO,"EPROTO"}, 60 {EPROTONOSUPPORT,"EPROTONOSUPPORT"}, 61 {EPROTOTYPE,"EPROTOTYPE"}, 62 {ERANGE,"ERANGE"},{EROFS,"EROFS"}, 63 {EWOULDBLOCK,"EWOULDBLOCK"},{EXDEV,"EXDEV"}, 64 {0,0} 65}; 66int main() { 67 struct unique *tst=sym; 68 int ret = PTP_PASS; 69 while(tst->name){ 70 if (tst->value < 0){ 71 printf("Value of symbol %s is less than zero\n",tst->name); 72 ret = PTP_FAIL; 73 } 74 tst++; 75 } 76 return ret; 77} 78