に処理するためのコールバック関数を使用すると、実際に...エラー私はCのエラー処理を被った困難について考えてきたC
if(printf("hello world")==-1){exit(1);}
を行いますが、あなたは冗長な、通常は無用をやっていないことで、共通の基準を破る者のようにコーディング。 libcの周りにラッパーがあればどうでしょうか?以下のようなので、あなたは...のように私は私自身のBSDライセンスの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
}
...
を何かができる(私はすでに..アンタッチャブルに触れることがあります)、私はしたいと思います人々はそれについて何を考えているか知っている.. これは実際には実生活で動作し、-1を返すよりも有用でしょうか?
printf(...)== -1をチェックすると、printf(...)は印刷される文字数を返します.0未満にすることはできません。 – Kai
"印刷された文字数が返されますエラーが発生した場合は-1が返されます。 " – Earlz
エラーが発生した場合は、すべてのlibc関数がerror_catchallのパラメータにラップされていますか? – LB40