QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2186|回复: 4

关于检验系统调用

[复制链接]
发表于 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);
}

谢谢!!!
发表于 2004-4-29 22:08:27 | 显示全部楼层
试试dmseg
回复

使用道具 举报

发表于 2004-7-22 09:56:58 | 显示全部楼层
任何時候, 我们都可以用 dmseg 命令查看缓冲区的內容, 或是直接检验 /proc/kmsg 这个文件。
回复

使用道具 举报

发表于 2004-7-23 23:39:53 | 显示全部楼层
好像printk是输出在当前文本终端上的
另:用户程序有bug:now没分配空间
回复

使用道具 举报

发表于 2004-8-26 12:07:51 | 显示全部楼层
输出设备不一样当然不能显示了.dmesg/cat /var/log/messages即可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-5 05:57 , Processed in 0.074649 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表