Add raw flag for dmesg

This commit is contained in:
sin 2013-08-17 17:22:30 +01:00
parent 41d82175fc
commit 5c73758bba
1 changed files with 13 additions and 4 deletions

17
dmesg.c
View File

@ -18,7 +18,7 @@ enum {
static void static void
usage(void) usage(void)
{ {
eprintf("usage: [-Cc] %s\n", argv0); eprintf("usage: [-Ccr] %s\n", argv0);
} }
int int
@ -27,6 +27,7 @@ main(int argc, char *argv[])
int n; int n;
char *buf; char *buf;
int cflag = 0; int cflag = 0;
int rflag = 0;
ARGBEGIN { ARGBEGIN {
case 'C': case 'C':
@ -36,6 +37,9 @@ main(int argc, char *argv[])
case 'c': case 'c':
cflag = 1; cflag = 1;
break; break;
case 'r':
rflag = 1;
break;
default: default:
usage(); usage();
} ARGEND; } ARGEND;
@ -52,9 +56,14 @@ main(int argc, char *argv[])
if (n < 0) if (n < 0)
eprintf("klogctl:"); eprintf("klogctl:");
n = dmesg_show(STDOUT_FILENO, buf, n); if (rflag) {
if (n < 0) if (write(STDOUT_FILENO, buf, n) != n)
eprintf("dmesg_show:"); 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) if (cflag && klogctl(SYSLOG_ACTION_CLEAR, NULL, 0) < 0)
eprintf("klogctl:"); eprintf("klogctl:");