2012-04-22 1 views
0

Как добавить ошибку в стек perror?Как добавить описание моей ошибки в функцию perror

вот пример того, что я хочу

#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; 
} 
+5

Это не в AAAAAAAAAAAAALLLL, как работает подсистема errno ... –

+0

Если это C++ .. ** использование исключений !! ** – jli

+0

не C++ просто c. –

ответ

2

Там нет стандартного (или нестандартным, на системах я знаю) способ добавления новых errno значения; вы можете назначить errno для использования существующих значений, но это не очень хорошая идея для чего-либо, что не входит в стандартную библиотеку.

2

Единственный способ изменить стандартную библиотеку C, и вы не хотите этого делать.

Если вы меняли libc и используете измененный, вы можете добавить свои собственные номера errno. Но тогда ваша программа будет работать правильно только в системах с вашей модифицированной «стандартной» библиотекой.