summaryrefslogtreecommitdiff
path: root/testcld.c
diff options
context:
space:
mode:
Diffstat (limited to 'testcld.c')
-rw-r--r--testcld.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/testcld.c b/testcld.c
new file mode 100644
index 0000000..83212e9
--- /dev/null
+++ b/testcld.c
@@ -0,0 +1,19 @@
+#include <errno.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+int main(void) {
+ int i;
+ sigset(SIGCLD, SIG_IGN);
+ switch (fork()) {
+ case -1:
+ return 1;
+ case 0:
+ return 0;
+ default:
+ sleep(1);
+ if (wait(&i) == -1 && errno == ECHILD) return 0;
+ else return 1;
+ }
+}