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 */
  • 相关阅读:
    【Autofac】- 创建的类的生命周期
    SQL Server 性能调优 之执行计划(Execution Plan)调优
    SQL Server 监测语句
    机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)
    机器学习进阶-案例实战-图像全景拼接-书籍SIFT特征点连接 1.cv2.drawMatches(对两个图像的关键点进行连线操作)
    机器学习进阶-图像特征sift-SIFT特征点 1.cv2.xfeatures2d.SIFT_create(实例化sift) 2. sift.detect(找出关键点) 3.cv2.drawKeypoints(画出关键点) 4.sift.compute(根据关键点计算sift向量)
    机器学习进阶-图像特征harris-角点检测 1.cv2.cornerHarris(进行角点检测)
    机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.cv2.MORPH_TOPHAT(礼帽运算突出线条) 5.cv2.MORPH_CLOSE(闭运算图片内部膨胀) 6. cv2.resize(改变图像大小) 7.cv2.putText(在图片上放上文本)
    机器学习进阶-直方图与傅里叶变换-傅里叶变换(高低通滤波) 1.cv2.dft(进行傅里叶变化) 2.np.fft.fftshift(将低频移动到图像的中心) 3.cv2.magnitude(计算矩阵的加和平方根) 4.np.fft.ifftshift(将低频和高频移动到原来位置) 5.cv2.idft(傅里叶逆变换)
    机器学习进阶-直方图与傅里叶变化-直方图均衡化 1.cv2.equalizeHist(进行直方图均衡化) 2. cv2.createCLAHA(用于生成自适应均衡化图像)
  • 原文地址:https://www.cnblogs.com/wainiwann/p/3340277.html
Copyright © 2011-2022 走看看