clx0402 发表于 2004-4-29 20:05:55

关于检验系统调用

请问:我在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);
}

谢谢!!!

_z_ 发表于 2004-4-29 22:08:27

试试dmseg

hanzg 发表于 2004-7-22 09:56:58

任何時候, 我们都可以用 dmseg 命令查看缓冲区的內容, 或是直接检验 /proc/kmsg 这个文件。

realzjie 发表于 2004-7-23 23:39:53

好像printk是输出在当前文本终端上的
另:用户程序有bug:now没分配空间

sgbhappy 发表于 2004-8-26 12:07:51

输出设备不一样当然不能显示了.dmesg/cat /var/log/messages即可
页: [1]
查看完整版本: 关于检验系统调用