title: Using callback functions for error handling in C
body: <p>I have been thinking about the difficulty incurred with C error handling.. like who actually does</p>
  
  <pre><code>if(printf("hello world")==-1){exit(1);}
  </code></pre>
  
  <p>But you break common standards by not doing such verbose, and usually useless coding. Well what if you had a wrapper around the libc? like so you could do something like..</p>
  
  <pre><code>//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
  }
  ...
  </code></pre>
  
  <p>I am considering making such a wrapper as I am synthesizing my own BSD licensed libc(so I already have to touch the untouchable..), but I would like to know what people think about it..
  would this actually work in real life and be more useful than returning -1?</p>