0

如何将错误添加到错误堆栈?

这是我想要的一个例子

#include <stdio.h>
#include <stdlib.h>

int Div (int a, int b, int * c) {
   if (b == 0) {
       // add to perror: "cannot divide by zero!"
       return 0;
   }
   *c = a / b;
   return 1;
}

int main () {
   int n;
   if (!Div(2, 0, &n)) {
      perror("could not divide");
   }
   return 1;
}
4

2 回答 2

2

唯一的方法是更改​​ C 标准库,而您不想这样做。

如果您更改libc并使用修改后的号码,您可以添加自己的errno号码。但是你的程序只能在你修改过的“标准”库的系统上正常工作。

于 2012-04-22T04:28:51.620 回答
2

没有标准(或非标准,在我知道的系统上)添加新errno值的方法;您可以分配给以errno使用现有值,但这对于不属于标准库的任何内容都不是一个好主意。

于 2012-04-22T04:08:55.490 回答