一尘不染

如何设置errno值?

linux

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

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. 如何设置errno在上面的方法func1,并func2EEXISTENOENT

谢谢


阅读 688

收藏
2020-06-07

共1个答案

一尘不染

出于所有实际目的,您可以将其视为errno全局变量(尽管通常不是)。所以包括errno.h并使用它:

errno = ENOENT;

您应该问自己是否errno是针对您的目的的最佳错误报告机制。可以将这些函数设计为自行返回错误代码吗?

2020-06-07