- 论坛徽章:
- 0
|
/* this is test codes which will to get the message from kernel*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/klog.h>
#include <unistd.h>
#include <linux/kernel.h>
char *get_buffer_from_cache(void);
void show_kernel_information(const char *buffer);
#define RMuint8 int
#define TEXT_X 20
#define TEXT_Y 24
#define MAX 1024
RMuint8 line_num = 24;
//char buffer[MAX];
char *get_buffer_from_cache(void)
{
char buffer[MAX];
char *tmp=NULL;
RMuint8 ch=0;
ch = syslog(2,buffer,MAX);
printf("get from kernel: %d\n",ch);
if (ch > 0)
tmp = buffer;
else
{
printf("can't get information from kernel\n");
}
return tmp;
}
void show_kernel_information(const char *buffer)
{
RMuint8 len=0;
if (buffer ==NULL)
{
printf("bad luck! \n");
exit(-1);
}
len = sizeof (buffer);
if (len != 0 )
printf("%s\n",buffer);
// pMpegDecoder->RenderText (buffer, 250, TEXT_X, TEXT_Y+line_num, 260-32, 20, CHI_12_12);
line_num += TEXT_Y;
}
int main (char *argc, char *argv[])
{
char *buf = NULL;
buf = get_buffer_from_cache();
show_kernel_information(buf);
return 0;
}
///////////////////////////////////////////////////////////////
// The end
//////////////////////////////////////////////////////////////
[root@localhost dragon]# ./test
get from kernel: 0
can't get information from kernel
bad luck!
man 2 syslog 文档上说:-1 是syslog失败,number返回,是成功。那么0是什么原因呢?请教!! |
|