OLD | NEW |
(Empty) | |
| 1 #include "stdio_impl.h" |
| 2 |
| 3 static FILE *volatile dummy_file = 0; |
| 4 weak_alias(dummy_file, __stdin_used); |
| 5 weak_alias(dummy_file, __stdout_used); |
| 6 weak_alias(dummy_file, __stderr_used); |
| 7 |
| 8 static void close_file(FILE *f) |
| 9 { |
| 10 if (!f) return; |
| 11 FFINALLOCK(f); |
| 12 if (f->wpos > f->wbase) f->write(f, 0, 0); |
| 13 if (f->rpos < f->rend) f->seek(f, f->rpos-f->rend, SEEK_CUR); |
| 14 } |
| 15 |
| 16 void __stdio_exit(void) |
| 17 { |
| 18 FILE *f; |
| 19 for (f=*__ofl_lock(); f; f=f->next) close_file(f); |
| 20 close_file(__stdin_used); |
| 21 close_file(__stdout_used); |
| 22 } |
| 23 |
| 24 weak_alias(__stdio_exit, __stdio_exit_needed); |
OLD | NEW |