Vagy a szokásos módon, nem gányolva:
int rc;
rc = assign_signal(...);
if (rc) {
log(...);
goto err;
}
rc = daemonize(...);
if (rc){
log(...);
goto err;
}
rc = foobar(...);
if (rc){
log(...)
goto err;
}
for(;;){
...
}
err:
free_resources();
return rc;