zoukankan      html  css  js  c++  java
  • errno之我见

    Errno能帮我们找到系统函数的错误信息。

    比方open函数,假设正常返回时,其返回值是一个非负的整数。

    异常时会返回-1。同一时候该系统函数会设置errno的值。让我们能够了解错误的原因。

     

    Errno的正确使用方法是,首先要明白系统函数调用异常(比方返回-1或NULL)。然后再去推断errno的值。我们不能直接去推断errno的值来断定系统函数调用是否发生了一场。

    由于errno值是不会被清零,它仅仅是在发生异常的时候才会赋予对应的值。当然我们也不必自己对其清零。

     

    另外。errno是线程安全的。能够理解成每个线程均有一个errno的值,它们相互之间没有干扰。

     

    有两个系统函数能够让错误信息更加的readable,例如以下所看到的:

    #include <string.h>

    char *strerror(int errnum);

    Returns: pointer to message string

     

    #include <stdio.h>

    void perror(const char *msg);

     

    通过推断errno的值能够使得我们的系统更加的健壮。一个样例是有些操作系统会在slow system call时处理signal后不会继续block在之前的系统函数中。同一时候设置errno的值为EINTR。还有一个样例是网络连接异常时。我们能够缓上一段时间再连接,而不必直接退出。
  • 相关阅读:
    Qt之数据类型转换
    [leetcode] Sudoku Solver
    调用摄像头拍照实例,摇一摇实例
    html 标签
    JavaScript 常见的六种继承方式
    js的DOM的方法和属性总结
    BOM属性方法。
    DOM 元素对象的属性方法
    完整的用户代理字符串检测
    可以跨浏览器获得窗口左边,和上边的位置
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6707657.html
Copyright © 2011-2022 走看看