Kde zozeniem zdrojak programu dmesg? Cez Google som nic poriadne nenasiel - vsade je len verzia pre Amigu, ktora je sucastou zdrojakov jadra... Chcem z toho zistit, ako sa da citat z toho chyboveho vystupu jadra.
Printable View
Kde zozeniem zdrojak programu dmesg? Cez Google som nic poriadne nenasiel - vsade je len verzia pre Amigu, ktora je sucastou zdrojakov jadra... Chcem z toho zistit, ako sa da citat z toho chyboveho vystupu jadra.
util-linux-2.11z.tar.bz2 -> sys-utils -> dmesg.cKód:tom@gama tom $ qpkg -f /bin/dmesg
sys-apps/util-linux *
Kód:/* dmesg.c -- Print out the contents of the kernel ring buffer
* Created: Sat Oct 9 16:19:47 1993
* Revised: Thu Oct 28 21:52:17 1993 by faith@cs.unc.edu
* Copyright 1993 Theodore Ts'o (tytso@athena.mit.edu)
* This program comes with ABSOLUTELY NO WARRANTY.
* Modifications by Rick Sladkey (jrs@world.std.com)
* Larger buffersize 3 June 1998 by Nicolai Langfeldt, based on a patch
* by Peeter Joot. This was also suggested by John Hudson.
* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
* - added Native Language Support
*
*/
#include <linux/unistd.h>
#include <stdio.h>
#include <getopt.h>
#include <stdlib.h>
#include "nls.h"
#if __GNU_LIBRARY__ < 5
#ifndef __alpha__
# define __NR_klogctl __NR_syslog
static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
#else /* __alpha__ */
#define klogctl syslog
#endif
#else
# include <sys/klog.h>
#endif
static char *progname;
static void
usage(void) {
fprintf(stderr,
_("Usage: %s [-c] [-n level] [-s bufsize]\n"), progname);
}
int
main(int argc, char *argv[]) {
char *buf;
int bufsize = 16392;
int i;
int n;
int c;
int level = 0;
int lastc;
int cmd = 3;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
progname = argv[0];
while ((c = getopt(argc, argv, "cn:s:")) != -1) {
switch (c) {
case 'c':
cmd = 4;
break;
case 'n':
cmd = 8;
level = atoi(optarg);
break;
case 's':
bufsize = atoi(optarg);
break;
case '?':
default:
usage();
exit(1);
}
}
argc -= optind;
argv += optind;
if (argc > 1) {
usage();
exit(1);
}
if (cmd == 8) {
n = klogctl(cmd, NULL, level);
if (n < 0) {
perror("klogctl");
exit(1);
}
exit(0);
}
if (bufsize < 4096) bufsize = 4096;
buf = (char*)malloc(bufsize);
n = klogctl(cmd, buf, bufsize);
if (n < 0) {
perror("klogctl");
exit(1);
}
lastc = '\n';
for (i = 0; i < n; i++) {
if ((i == 0 || buf[i - 1] == '\n') && buf[i] == '<') {
i++;
while (buf[i] >= '0' && buf[i] <= '9')
i++;
if (buf[i] == '>')
i++;
}
lastc = buf[i];
putchar(lastc);
}
if (lastc != '\n')
putchar('\n');
return 0;
}
Thx :-) Vedel som, ze je to v nejakych utils, ale nevedel som si spomenut na nazov ;D
Este mam jednu otazku - nefunguje mi /proc/kmsg. Ked spustim "cat /proc/kmsg", tak to nic nerobi - nic nevypise, len caka (na co ??? ). Musi byt nieco spustene, aby to fungovalo?
Kód:root@server:/proc# ls -la
total 1
dr-xr-xr-x 35 root root 0 Aug 23 15:13 ./
drwxr-xr-x 16 root root 1024 Aug 18 16:06 ../
dr-xr-xr-x 3 root root 0 Sep 27 18:28 1/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10002/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10005/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10106/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10110/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10131/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10134/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10169/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 10235/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 141/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 144/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 196/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 199/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 2/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 208/
dr-xr-xr-x 3 daemon daemon 0 Sep 27 18:28 22964/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 3/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 4/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 5/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 6/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 7/
dr-xr-xr-x 4 root root 0 Sep 27 18:28 bus/
-r--r--r-- 1 root root 0 Sep 27 18:28 cmdline
-r--r--r-- 1 root root 0 Sep 27 18:28 cpuinfo
-r--r--r-- 1 root root 0 Sep 27 18:28 devices
-r--r--r-- 1 root root 0 Sep 27 18:28 dma
dr-xr-xr-x 2 root root 0 Sep 27 18:28 driver/
-r--r--r-- 1 root root 0 Sep 27 18:28 execdomains
-r--r--r-- 1 root root 0 Sep 27 18:28 filesystems
dr-xr-xr-x 2 root root 0 Sep 27 18:28 fs/
dr-xr-xr-x 3 root root 0 Sep 27 18:28 ide/
-r--r--r-- 1 root root 0 Sep 27 18:28 interrupts
-r--r--r-- 1 root root 0 Sep 27 18:28 iomem
-r--r--r-- 1 root root 0 Sep 27 18:28 ioports
dr-xr-xr-x 18 root root 0 Sep 27 18:28 irq/
-r-------- 1 root root 16781312 Sep 27 18:28 kcore
-r-------- 1 root root 0 Aug 23 13:14 kmsg
-r--r--r-- 1 root root 0 Sep 27 18:28 ksyms
-r--r--r-- 1 root root 0 Sep 27 18:28 loadavg
-r--r--r-- 1 root root 0 Sep 27 18:28 locks
-r--r--r-- 1 root root 0 Sep 27 18:28 meminfo
-r--r--r-- 1 root root 0 Sep 27 18:28 misc
-r--r--r-- 1 root root 0 Sep 27 18:28 modules
lrwxrwxrwx 1 root root 11 Sep 27 18:28 mounts -> self/mounts
dr-xr-xr-x 4 root root 0 Sep 27 18:28 net/
-r--r--r-- 1 root root 0 Sep 27 18:28 partitions
-r--r--r-- 1 root root 0 Sep 27 18:28 pci
lrwxrwxrwx 1 root root 64 Sep 27 16:58 self -> 10235/
-rw-r--r-- 1 root root 0 Sep 27 18:28 slabinfo
-r--r--r-- 1 root root 0 Sep 27 18:28 stat
-r--r--r-- 1 root root 0 Sep 27 18:28 swaps
dr-xr-xr-x 10 root root 0 Sep 27 18:28 sys/
dr-xr-xr-x 2 root root 0 Sep 27 18:28 sysvipc/
dr-xr-xr-x 4 root root 0 Sep 27 18:28 tty/
-r--r--r-- 1 root root 0 Sep 27 18:28 uptime
-r--r--r-- 1 root root 0 Sep 27 18:28 version
Vyriesenie - nic nemusi bezat, dokonca nieco bezat nesmie ;D Nesmie bezat klogd, lebo on to odtial cita a na mna uz tam nic neostane :-)