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。还有一个样例是网络连接异常时。我们能够缓上一段时间再连接,而不必直接退出。
  • 相关阅读:
    tomcat 设置session过期时间(四种方式)
    Delphi7程序调用C#写的DLL解决办法
    delphi 获取大于2G的物理内存大小
    delphi 判断目录是否可写
    DLL编写与调用全解
    API Hook基本原理和实现
    dotnet tools 运行 dotnet run
    .NET Core & ASP.NET Core 1.0
    WebApp模版并运行
    配置系统引导启动SuperScoekt
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6707657.html
Copyright © 2011-2022 走看看