Just a reminder before everything is done. Also remember to flush the buffers: ```c #include <stdio.h> #include <unistd.h> int main(void) { printf("foo"); /* fflush(stdout); etc */ fork(); return 0; } ``` Interesting: * https://man7.org/linux/man-pages/man7/signal-safety.7.html * https://man7.org/linux/man-pages/man2/sigaction.2.html * man 3 ev * https://vorner.github.io/2018/06/28/signal-hook.html * https://tavianator.com/spawn-of-satan/ * https://brauner.github.io/2018/03/04/locking-in-shared-libraries.html * https://github.com/oconnor663/duct.py/blob/master/gotchas.md * https://lwn.net/Articles/360556/ * https://lwn.net/Articles/683118/ * https://lwn.net/Articles/176911/ * https://lwn.net/Articles/789603/ * https://www.kernel.dk/io_uring.pdf * https://man7.org/linux/man-pages/man7/io_uring.7.html * https://man7.org/linux/man-pages/man2/splice.2.html * https://man7.org/linux/man-pages/man2/tee.2.html * https://www.microsoft.com/en-us/research/publication/a-fork-in-the-road/ <!-- proposals --> * https://lwn.net/Articles/789023/ * https://lwn.net/Articles/789153/ * [https://lore.kernel.org/patchwork/patch/1083964/](https://lkml.org/lkml/2019/6/4/871) <!-- for real --> Very interesting: * https://arcan-fe.com/2022/10/15/whipping-up-a-new-shell-lashcat9/
Just a reminder before everything is done.
Also remember to flush the buffers:
Interesting:
Very interesting: