我有两个对两种不同方法的调用:

void func1() 
{
  // do something 
  if (fail) 
  {
    // then set errno to EEXIST

  }

}

第二种方法:

void func2() 
{
  // do something 
  if (fail) 
  {
    // then set errno to ENOENT

  }

}
  1. 当我将errno设置为某个值时,它会做什么?只是错误判断?

  2. 在上述方法func1func2EEXISTENOENT中,如何设置errno

谢谢

推荐答案

出于所有实际目的,可以将errno视为一个全局变量(尽管通常不是).所以,把errno.h包括在内,然后直接使用它:

errno = ENOENT;

你应该问问自己,errno是不是最好的错误报告机制.这些函数是否可以自行返回错误代码?

Linux相关问答推荐

awk:try 将时间戳字符串转换为unix纪元时间

Ansible-删除两个注释之间的代码块(包括注释本身)

jinja2.exceptions.TemplateSyntaxError:预期标记,,得到整数(支持十六进制,八进制和二进制整数文字)

在 bash 中获取目录或文件的基本名称的快速且正确的方法

awk 不打印所需的 df 输出

如何使用 shell 脚本将文本文件转换为 JSON 文件

在 Windows 上通过 SSH 运行 django 应用程序

如何/在哪里可以找到要修复的 Linux 内核错误?

anon 对 pmap 意味着什么?

关于 putenv() 和 setenv() 的问题

如何将输出从 grep 传送到 cp?

docker images显示图像,docker rmi表示没有这样的图像或参考不存在

如何等待第一个命令完成?

如何为 Git 命令设置自动完成功能?

如何通过进程名获取PID?

Postgresql -bash:psql:找不到命令

svn over HTTP 代理

Linux(Ubuntu)终端-如何查看以前的页面不再可见

从文件中随机 Select 行而不用 Unix 啜饮它

如何始终以 GB 为单位获取 df linux 命令输出