我使用klogctl
(或syslog
)通过重复获取输出来收集内核日志消息。
我想知道是否可以获得与内核日志关联的文件描述符,以便我可以使用 select
来观看它(我已经在观看与 udev 监视器关联的其他文件描述符与udev_monitor_get_fd
,并且使用select
来处理所有事情会很方便)
最佳答案
对于高于3.5的内核版本,/dev/kmsg
包含所有内核日志。
打开如下:
int fk = open("/dev/kmsg", O_RDONLY | O_NONBLOCK);
通过此时查找该文件的末尾,可以仅从程序中的某个特定点获取最新的内核消息:
lseek(fk, 0, SEEK_END);
然后,fk
以通常的方式添加到文件描述符集。
关于linux - 内核日志 "file descriptor"用于选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615442/