Jim Meyering wrote: > Thanks for the patch, but that `cure' seems worse than the disease.
I agree. The real good way to make this work on POSIX systems (without assuming multithreading) is to use fork(). - Let the parent process fork a child process, block the signals SIGHUP, SIGQUIT, SIGPIPE in the parent, and watch the child's exit status. If the exit status of the child is 128 + SIGHUP/SIGQUIT/SIGPIPE, print the statistics. - Let the child process to the real I/O work. With this approach, you don't install any signal handlers, therefore you don't even need to think about which functions are async-signal safe. You can use full malloc(), quote(), ngettext(), fprintf() etc. at will. Bruno _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils