Я размышлял о трудностях, возникающих при обработке ошибок C .. как, например, кто на самом деле
if(printf("hello world")==-1){exit(1);}
Но вы нарушаете общие стандарты, не делая такого многословного и обычно бесполезного кодирования. А что если у вас есть обертка вокруг libc? так, чтобы вы могли сделать что-то вроде ..
//main...
error_catchall(my_errors);
printf("hello world"); //this will automatically call my_errors on an error of printf
ignore=1; //this makes it so the function will return like normal and we can check error values ourself
if(fopen.... //we want to know if the file opened or not and handle it ourself.
}
int my_errors(){
if(ignore==0){
_exit(1); //exit if we aren't handling this error by flagging ignore
}
return 0;
//this is called when there is an error anywhere in the libc
}
...
Я подумываю сделать такую обертку, поскольку я синтезирую свой собственный лицензированный BSD libc (так что я уже должен коснуться неприкасаемого ...), но я хотел бы знать, что люди думают об этом ..
будет ли это на самом деле работать в реальной жизни и будет более полезным, чем возвращать -1?