...
| Code Block |
|---|
void _start() {
/* ... */
exit(main(argc, argv));
}
|
| Wiki Markup |
|---|
However, making it out of main is conditional on correctly handling all errors in a way that does not force premature termination (see \[[ERR00-A. Adopt and implement a consistent and comprehensive error handling policy]\] and \[[ERR05-A. Application-independent code must provide error detection without dictating error handling]\]). |
...
| Code Block | ||
|---|---|---|
| ||
#include <stdlib.h>
#include <stdio.h>
int write_data() {
char const char* filename = "hello.txt";
FILE *f = fopen(filename, "w");
if (f == NULL) {
/* handle error */
}
fprintf(f, "Hello, World\n");
/* ... */
abort(); /* oops! data might not get written! */
/* ... */
return 0;
}
int main(void) {
write_data();
return 0;
}
|
...
| Code Block | ||
|---|---|---|
| ||
#include <stdlib.h>
#include <stdio.h>
int write_data() {
char const char* filename = "hello.txt";
FILE *f = fopen(filename, "w");
if (f == NULL) {
/* handle error */
}
fprintf(f, "Hello, World\n");
/* ... */
exit(EXIT_FAILURE); /* writes data & closes f. */
/* ... */
return 0;
}
int main(void) {
write_data();
return 0;
}
|
...