zoukankan      html  css  js  c++  java
  • open()打开文件失败对应的各种错误码

    open()打开文件失败错误码:

    获取错误信息实例:

        HANDLE hFile = 0;
        hFile = open(“c:	est.txt”, O_RDWR, S_IRWXU|S_IRWXG|S_IRWXO);
            if (-1 == hFile)
            {
                
                printf("Error %d: Failed to open file
    ", errno);
    
                
                
                if (errno == EEXIST )
                {
                   printf("EEXIST 参数pathname 所指的文件已存在, 却使用了O_CREAT 和O_EXCL 旗标. 
    ");
                   
                }else if(errno == EACCES)
                {
                     printf("EACCESS 参数pathname 所指的文件不符合所要求测试的权限.
    ");
                      
                }else if(errno == EROFS)
                {
                     printf("EROFS 欲测试写入权限的文件存在于只读文件系统内.
    ");
                }else ......
        
                
                
                
            }
            

    注:使用errno 需要加上头文件:

    #include <errno.h> 

    #define    EPERM         1        /* Operation not permitted */
    #define    ENOENT         2        /* No such file or directory */
    #define    ESRCH          3        /* No such process */
    #define    EINTR          4        /* Interrupted system call */
    #define    EIO            5        /* Input/output error */
    #define    ENXIO          6        /* Device not configured */
    #define    E2BIG          7        /* Argument list too long */
    #define    ENOEXEC        8        /* Exec format error */
    #define    EBADF          9        /* Bad file descriptor */
    #define    ECHILD         10        /* No child processes */
    #define    EDEADLK        11        /* Resource deadlock avoided */
                        /* 11 was EAGAIN */
    #define    ENOMEM         12        /* Cannot allocate memory */
    #define    EACCES         13        /* Permission denied */
    #define    EFAULT         14        /* Bad address */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    ENOTBLK        15        /* Block device required */
    #endif
    #define    EBUSY          16        /* Device / Resource busy */
    #define    EEXIST         17        /* File exists */
    #define    EXDEV          18        /* Cross-device link */
    #define    ENODEV         19        /* Operation not supported by device */
    #define    ENOTDIR        20        /* Not a directory */
    #define    EISDIR         21        /* Is a directory */
    #define    EINVAL         22        /* Invalid argument */
    #define    ENFILE         23        /* Too many open files in system */
    #define    EMFILE         24        /* Too many open files */
    #define    ENOTTY         25        /* Inappropriate ioctl for device */
    #define    ETXTBSY        26        /* Text file busy */
    #define    EFBIG          27        /* File too large */
    #define    ENOSPC         28        /* No space left on device */
    #define    ESPIPE         29        /* Illegal seek */
    #define    EROFS          30        /* Read-only file system */
    #define    EMLINK         31        /* Too many links */
    #define    EPIPE          32        /* Broken pipe */
    
    /* math software */
    #define    EDOM           33        /* Numerical argument out of domain */
    #define    ERANGE         34        /* Result too large */
    
    /* non-blocking and interrupt i/o */
    #define    EAGAIN         35        /* Resource temporarily unavailable */
    #define    EWOULDBLOCK    EAGAIN        /* Operation would block */
    #define    EINPROGRESS    36        /* Operation now in progress */
    #define    EALREADY       37        /* Operation already in progress */
    
    /* ipc/network software -- argument errors */
    #define    ENOTSOCK       38        /* Socket operation on non-socket */
    #define    EDESTADDRREQ   39        /* Destination address required */
    #define    EMSGSIZE       40        /* Message too long */
    #define    EPROTOTYPE     41        /* Protocol wrong type for socket */
    #define    ENOPROTOOPT    42        /* Protocol not available */
    #define    EPROTONOSUPPORT   43        /* Protocol not supported */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    ESOCKTNOSUPPORT   44        /* Socket type not supported */
    #endif
    #define ENOTSUP              45        /* Operation not supported */


    #define    EPFNOSUPPORT      46        /* Protocol family not supported */
    #endif
    #define    EAFNOSUPPORT      47        /* Address family not supported by protocol family */
    #define    EADDRINUSE        48        /* Address already in use */
    #define    EADDRNOTAVAIL     49        /* Can't assign requested address */
    
    /* ipc/network software -- operational errors */
    #define    ENETDOWN          50        /* Network is down */
    #define    ENETUNREACH       51        /* Network is unreachable */
    #define    ENETRESET         52        /* Network dropped connection on reset */
    #define    ECONNABORTED      53        /* Software caused connection abort */
    #define    ECONNRESET        54        /* Connection reset by peer */
    #define    ENOBUFS           55        /* No buffer space available */
    #define    EISCONN           56        /* Socket is already connected */
    #define    ENOTCONN          57        /* Socket is not connected */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    ESHUTDOWN         58        /* Can't send after socket shutdown */
    #define    ETOOMANYREFS      59        /* Too many references: can't splice */
    #endif
    #define    ETIMEDOUT         60        /* Operation timed out */
    #define    ECONNREFUSED      61        /* Connection refused */
    
    #define    ELOOP             62        /* Too many levels of symbolic links */
    #define    ENAMETOOLONG      63        /* File name too long */
    
    /* should be rearranged */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    EHOSTDOWN         64        /* Host is down */
    #endif
    #define    EHOSTUNREACH      65        /* No route to host */
    #define    ENOTEMPTY         66        /* Directory not empty */
    
    /* quotas & mush */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    EPROCLIM          67        /* Too many processes */
    #define    EUSERS            68        /* Too many users */
    #endif
    #define    EDQUOT            69        /* Disc quota exceeded */
    
    /* Network File System */
    #define    ESTALE            70        /* Stale NFS file handle */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    EREMOTE           71        /* Too many levels of remote in path */
    #define    EBADRPC           72        /* RPC struct is bad */
    #define    ERPCMISMATCH      73        /* RPC version wrong */
    #define    EPROGUNAVAIL      74        /* RPC prog. not avail */
    #define    EPROGMISMATCH     75        /* Program version wrong */
    #define    EPROCUNAVAIL      76        /* Bad procedure for program */
    #endif
    
    #define    ENOLCK            77        /* No locks available */
    #define    ENOSYS            78        /* Function not implemented */
    
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    EFTYPE            79        /* Inappropriate file type or format */
    #define    EAUTH             80        /* Authentication error */
    #define    ENEEDAUTH         81        /* Need authenticator */
    
    /* Intelligent device errors */
    #define    EPWROFF           82    /* Device power is off */
    #define    EDEVERR           83    /* Device error, e.g. paper out */
    #endif
    
    #define    EOVERFLOW         84        /* Value too large to be stored in data type */
    
    /* Program loading errors */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define EBADEXEC             85    /* Bad executable */
    #define EBADARCH             86    /* Bad CPU type in executable */
    #define ESHLIBVERS           87    /* Shared library version mismatch */
    #define EBADMACHO            88    /* Malformed Macho file */
    #endif
    
    #define    ECANCELED         89        /* Operation canceled */
    
    #define EIDRM                90        /* Identifier removed */
    #define ENOMSG               91        /* No message of desired type */   
    #define EILSEQ               92        /* Illegal byte sequence */
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define ENOATTR              93        /* Attribute not found */
    #endif
    
    #define EBADMSG              94        /* Bad message */
    #define EMULTIHOP            95        /* Reserved */
    #define    ENODATA           96        /* No message available on STREAM */
    #define ENOLINK              97        /* Reserved */
    #define ENOSR                98        /* No STREAM resources */
    #define ENOSTR               99        /* Not a STREAM */
    #define    EPROTO            100        /* Protocol error */
    #define ETIME                101        /* STREAM ioctl timeout */
    
    #if __DARWIN_UNIX03 || defined(KERNEL)
    /* This value is only discrete when compiling __DARWIN_UNIX03, or KERNEL */
    #define    EOPNOTSUPP        102        /* Operation not supported on socket */
    #endif /* __DARWIN_UNIX03 || KERNEL */
    
    #define ENOPOLICY            103        /* No such policy registered */
    
    #if __DARWIN_C_LEVEL >= 200809L
    #define ENOTRECOVERABLE      104        /* State not recoverable */
    #define EOWNERDEAD           105        /* Previous owner died */
    #endif
    
    #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
    #define    EQFULL            106        /* Interface output queue is full */
    #define    ELAST             106        /* Must be equal largest errno */
  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/wainiwann/p/3340277.html
Copyright © 2011-2022 走看看