获取整型数的最大值和最小值 您所在的位置:网站首页 32位int最小值 获取整型数的最大值和最小值

获取整型数的最大值和最小值

#获取整型数的最大值和最小值| 来源: 网络整理| 查看: 265

linux内核编程:实现自己的系统调用

千册: 假如调用close,需要添加头文件#include ,如果是我们自己的系统调用,就没有头文件包含这个函数,编译的时候就报错了,我猜是这样的, 我测试的时候,看的一本的第五章。

linux内核编程:实现自己的系统调用

半夏绊情: 这个我自己试了下 好像不太行;按照你上面的描述我添加了以下东西: 1、arch/x86/entry/syscalls/syscall_64.tbl 335 common mycall __x64_sys_mycall 2、include/uapi/asm-generic/unistd.h #define __NR_mycall 335 __SYSCALL(__NR_mycall, sys_mycall) 3、kernel/sys.c SYSCALL_DEFINE1(mycall, int, num) { printk(KERN_ERR "func = %s\n",__FUNCTION__); if(num > 10) return 1; else return 0; } 4、include/linux/syscalls.h asmlinkage int sys_mycall(int num); 然后在应用层systemcall(335,2)确实可以调用到,但是应用层直接用mycall(2)就报错 找不到mycall这个定义

linux内核编程:实现自己的系统调用

千册: 例如syscond_syscall(sys_send);sys_send就是send要调用的,去掉sys_就行了吧,还有就是把定义的地方参数改好,例如SYSCALL_DEFINE1(hello_lkmao2,const char __user *,_name),这里,这里后两个,一个是类型,一个是变量,如果是多个变量,就再加一个类型,一个变量

linux内核编程:实现自己的系统调用

半夏绊情: 就像open函数一样,既可以syscall(id,fd,xxx)调用,也可以直接open(filename,xxx)调用,所以想看能不能这样做到

linux内核编程:实现自己的系统调用

千册: __NR_hello_lkmao_bak1和__NR_hello_lkmao_bak1是为了让数量满足后两位为0,如果不为0会报错 :实测证明,不多加两条确实会报错。实际上hello_lkmao_bak1这个函数不用实现,在这个只是为了满足__NR_syscalls等于,392,应该有更好的解决方案吧,只是我没想到表情包



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有