summaryrefslogtreecommitdiffstats
path: root/sbin/dmesg/dmesg.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/dmesg/dmesg.c')
-rw-r--r--sbin/dmesg/dmesg.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/sbin/dmesg/dmesg.c b/sbin/dmesg/dmesg.c
index 002732c..1d548a7 100644
--- a/sbin/dmesg/dmesg.c
+++ b/sbin/dmesg/dmesg.c
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include <locale.h>
#include <nlist.h>
#include <stdio.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -79,15 +80,20 @@ main(int argc, char *argv[])
kvm_t *kd;
size_t buflen, bufpos;
long pri;
- int all, ch;
+ int ch, clear;
+ bool all;
- all = 0;
+ all = false;
+ clear = false;
(void) setlocale(LC_CTYPE, "");
memf = nlistf = NULL;
- while ((ch = getopt(argc, argv, "aM:N:")) != -1)
+ while ((ch = getopt(argc, argv, "acM:N:")) != -1)
switch(ch) {
case 'a':
- all++;
+ all = true;
+ break;
+ case 'c':
+ clear = true;
break;
case 'M':
memf = optarg;
@@ -190,12 +196,16 @@ main(int argc, char *argv[])
(void)strvisx(visbp, p, nextp - p, 0);
(void)printf("%s", visbp);
}
+ if (clear)
+ if (sysctlbyname("kern.msgbuf_clear", NULL, NULL, &clear, sizeof(int)))
+ err(1, "sysctl kern.msgbuf_clear");
+
exit(0);
}
void
usage(void)
{
- (void)fprintf(stderr, "usage: dmesg [-a] [-M core [-N system]]\n");
+ fprintf(stderr, "usage: dmesg [-ac] [-M core [-N system]]\n");
exit(1);
}
OpenPOWER on IntegriCloud