zoukankan      html  css  js  c++  java
  • errno相关

    errno(需include errno.h),当API调用出错时保留最后一次出错信息,在unix系统下作为一种常用的

    调试手段。

    但是errno是一个数字,代表的具体含义还要到errno.h中去阅读宏定义,而每次查阅是一件很繁琐的事情。有下面几种方法可以方便的得到错误信息
      (1)void perror(const char *s)
    函数说明
    perror ( )用来将上一个函数发生错误的原因输出到标准错误(stderr),参数s 所指的字符串会先打印出,后面再加上错误原因 字符串。此错误原因依照全局变量 errno 的值来决定要输出的字符串。
      (2) char *strerror(int errno)
    将错误代码转换为字符串错误信息,可以将该字符串和其它的信息组合输出到用户界面例如
    fprintf(stderr,"error in CreateProcess %s, Process ID %d ",strerror(errno),processID)
    注:假设processID是一个已经获取了的整形ID。

    但需要注意的是在Linux系统中errno是一个线程安全的变量。

    但是在某些Solaris系统上errno不是个线程安全的变量。

    #本人前几天遇到的一个bug就是由于这个区别引起的。

    如果在Solaris上想使用线程安全的errno,则在编译时需要增加-mt参数。

  • 相关阅读:
    最大流问题
    最短路-Floyd算法和Dijkstra算法
    最小生成树-Prim算法
    最小生成树-Kruskal算法
    MP and KMP
    导出excel表格并合并单元格(不按模板导出)
    导出excel表格(按模板导出)
    datatables和template列表查询分页单元格合并
    datatables的使用
    js对象的使用
  • 原文地址:https://www.cnblogs.com/cnlixl/p/2620716.html
Copyright © 2011-2022 走看看