From 5c73758bba3cabadd34871c0361b938c05282168 Mon Sep 17 00:00:00 2001 From: sin Date: Sat, 17 Aug 2013 17:22:30 +0100 Subject: [PATCH] Add raw flag for dmesg --- dmesg.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/dmesg.c b/dmesg.c index bb72d3b..1cee004 100644 --- a/dmesg.c +++ b/dmesg.c @@ -18,7 +18,7 @@ enum { static void usage(void) { - eprintf("usage: [-Cc] %s\n", argv0); + eprintf("usage: [-Ccr] %s\n", argv0); } int @@ -27,6 +27,7 @@ main(int argc, char *argv[]) int n; char *buf; int cflag = 0; + int rflag = 0; ARGBEGIN { case 'C': @@ -36,6 +37,9 @@ main(int argc, char *argv[]) case 'c': cflag = 1; break; + case 'r': + rflag = 1; + break; default: usage(); } ARGEND; @@ -52,9 +56,14 @@ main(int argc, char *argv[]) if (n < 0) eprintf("klogctl:"); - n = dmesg_show(STDOUT_FILENO, buf, n); - if (n < 0) - eprintf("dmesg_show:"); + if (rflag) { + if (write(STDOUT_FILENO, buf, n) != n) + eprintf("write:"); + } else { + n = dmesg_show(STDOUT_FILENO, buf, n); + if (n < 0) + eprintf("dmesg_show:"); + } if (cflag && klogctl(SYSLOG_ACTION_CLEAR, NULL, 0) < 0) eprintf("klogctl:");