关于检验系统调用
请问:我在kernel/time.c中加了一个pedagogictime来显示当前时间(只是尝试),然后用一个用户程序检测,在黑屏下可以正常打印出结果,但在图形界面下就不输出任何结果,不知为什么?系统调用的函数如下:
asmlinkage int sys_pedagogictime(int flag,struct timeval *thetime)
{
struct timeval now;
int time;
cli();
do_gettimeofday(&now);
time=now.tv_sec;
sti();
if(copy_to_user(thetime, &now, sizeof(now)))
{
printk("skecall:Cannot write into user space!\n");
return 0;
}
printk("The time is %d now.\n",thetime->tv_sec);
return 1;
}
用户程序如下:
#include<time.h>
#include<stdio.h>
#include<unistd.h>
int main()
{
struct timeval *now;
syscall(259,1,now);//系统调用入口号为259
exit(0);
}
谢谢!!! 试试dmseg 任何時候, 我们都可以用 dmseg 命令查看缓冲区的內容, 或是直接检验 /proc/kmsg 这个文件。 好像printk是输出在当前文本终端上的
另:用户程序有bug:now没分配空间 输出设备不一样当然不能显示了.dmesg/cat /var/log/messages即可
页:
[1]