X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Fcoloredstderr.c;h=f1f2599927eb99130947afdd4f272ef86f9b305a;hb=8a65b4486febf00e3fad5bafc3773a811e675a4c;hp=064383ea545c90697fbc1f849ba301cc5799c494;hpb=733e149c1a48f5fcb5c90579c67af57f9df982ef;p=coloredstderr%2Fcoloredstderr.git diff --git a/src/coloredstderr.c b/src/coloredstderr.c index 064383e..f1f2599 100644 --- a/src/coloredstderr.c +++ b/src/coloredstderr.c @@ -2,7 +2,7 @@ * Hook output functions (like printf(3)) with LD_PRELOAD to color stderr (or * other file descriptors). * - * Copyright (C) 2013-2014 Simon Ruderich + * Copyright (C) 2013-2015 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -534,11 +534,12 @@ pid_t vfork(void) { * isn't allowed to perform any memory-modifications before the exec() * (except the pid_t result variable of vfork()). * - * As some programs don't adhere to the standard (e.g. the "child" closes - * or dups a descriptor before the exec()) and this breaks our tracking of - * file descriptors (e.g. it gets closed in the parent as well), we just - * fork() instead. This is in compliance with the POSIX standard and as - * most systems use copy-on-write anyway not a performance issue. */ + * As we have to store changes to the file descriptors in memory (e.g. the + * "child" closes or dups a descriptor before the exec()) and this + * modifies the parent as well due to the semantics of vfork() - thus + * breaking the requirements of vfork(), we just use fork instead(). This + * is in compliance with the POSIX standard and as most systems use + * copy-on-write anyway not a performance issue. */ return fork(); } #endif