您的位置:首页 > 其它

ubuntu上实时查看内核打印信息

2013-04-02 20:38 411 查看
编写一个监控程序,通过dmesg命令把内核打印输出到某个文件,然后每个一秒钟,输出一次,每一次都和上一次到信息比较,如果有差异,则打印到串口终端。

#include <stdio.h>
#include <stdlib.h>

int compareFile(FILE *old, FILE *new);

int main()
{
FILE *new;
FILE *old;
int lRet;
static first = 0;

system("touch file_new");
system("touch file_old");

new = fopen("file_new", "rw");
old = fopen("file_old", "rw");

while(1)
{
sleep(1);
system("dmesg > file_new");

if (first == 0)
{
system("cp file_new file_old");
first++;
continue;
}

new = fopen("file_new", "rw");
old = fopen("file_old", "rw");

if (compareFile(new, old) == 0)
{
fclose(new);
fclose(old);
continue;
}
else
{
fclose(new);
fclose(old);

system("diff file_new file_old");
system("cp file_new file_old");
}
}
return 0;
}

int compareFile(FILE *old, FILE *new)
{
char c1;
char c2;

while(!feof(old) && !feof(new))
{
c1 = fgetc(old);
c2 = fgetc(new);

if (c1 != c2)
{
return -1;
}
}

if ((c1 == EOF)&&(c2 == EOF))
{
return 0;
}
return -1;
}


2、编译后,后台运行该程序即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: