From 99624b0b6de928f6891690b6269b25e0f57d088d Mon Sep 17 00:00:00 2001 From: itohy Date: Fri, 23 Jul 1999 03:10:49 +0000 Subject: [PATCH] Fix fowllowing problems: 1. If fork()ing, the program is executed twice. 2. If the ktruss(1) output is bufferd, the final output is not flushed (because it is executing). % ktrace -f - rm >/dev/null usage: rm [-dfiPRrW] file ... usage: rm [-dfiPRrW] file ... % ktruss date | cat Fri Jul 23 12:09:45 JST 1999 Fri Jul 23 12:09:46 JST 1999 % --- usr.bin/ktrace/ktrace.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/usr.bin/ktrace/ktrace.c b/usr.bin/ktrace/ktrace.c index 3ee1c290d804..b5bc960afb39 100644 --- a/usr.bin/ktrace/ktrace.c +++ b/usr.bin/ktrace/ktrace.c @@ -1,4 +1,4 @@ -/* $NetBSD: ktrace.c,v 1.10 1999/01/11 22:40:01 kleink Exp $ */ +/* $NetBSD: ktrace.c,v 1.11 1999/07/23 03:10:49 itohy Exp $ */ /*- * Copyright (c) 1988, 1993 @@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\ #if 0 static char sccsid[] = "@(#)ktrace.c 8.2 (Berkeley) 4/28/95"; #else -__RCSID("$NetBSD: ktrace.c,v 1.10 1999/01/11 22:40:01 kleink Exp $"); +__RCSID("$NetBSD: ktrace.c,v 1.11 1999/07/23 03:10:49 itohy Exp $"); #endif #endif /* not lint */ @@ -290,6 +290,12 @@ do_ktrace(tracefile, ops, trpoints, pid) cnt += n; } } +#endif + if (!nofork) +#ifdef KTRUSS + exit(0); /* flush stdio needed */ +#else + _exit(0); #endif return 0; }