当前位置:  技术问答>linux和unix

添加系统调用后,调用时总是返回-1,为什么?

    来源: 互联网  发布时间:2016-01-23

    本文导语:  用的suse10,版本2.6.13 我的步骤是 1、在/usr/src/linux/kernel-2.6.13/sys.c文件中添加源代码,如下所示:    asmlinkage int sys_mycall(int number)     {          return number;     }  2、在/usr/src/linux/include/asm-i386/unistd.h 中...

用的suse10,版本2.6.13
我的步骤是
1、在/usr/src/linux/kernel-2.6.13/sys.c文件中添加源代码,如下所示: 
  asmlinkage int sys_mycall(int number) 
   { 
        return number; 
   } 
2、在/usr/src/linux/include/asm-i386/unistd.h 中添加
   #define __NR_mycall 295(我的内核中最后一个是294)
3、/usr/src/linux/arch/i386/kernel/sys_call_table.s中添加
   .long sys_mycall
4、编译内核,这一步没有问题
5、调用新的系统调用
   程序:
   #include 
   #include
   _syscall1(int,mycall,int,number)
   int main()
   {
        int ret;
        ret = mycall(100);
        printf("%dn",ret);
        return 0;
   }
6、编译后运行,本来结果应该是100,可是真正结果是-1……
   为什么啊?哪位大虾遇到过这个问题或者知道怎么解决啊?帮帮忙!!

|
1、在/usr/src/linux/kernel-2.6.13/sys.c文件中添加源代码,如下所示: 
  asmlinkage int sys_mycall(int number) 
   { 
        return number; 
   } 
3、/usr/src/linux/arch/i386/kernel/sys_call_table.s中添加
   .long sys_mycall
这两个函数怎么一样??sys_call_table.s中应该添加:
mycall:
    mov eax, 295
    call 80h
    ret   

然后再在系统调用函数列表sys_table中增加sys_mycall


以上是参考,具体版本使用的数据结构名字,在代码里面找找

    
 
 

您可能感兴趣的文章:

  • Linux添加系统调用时如何调用C语言库函数
  • 在linux kernel 里添加了系统调用,如何在用户程序中调用添加的系统调用呢?急
  • MINIX3 系统如何添加系统调用
  • 添加系统调用的问题
  • linux3.0.0.12内核怎么添加系统调用
  • c# 调用Surfer软件,添加引用的具体操作方法
  • 添加自己的系统调用的问题,请大侠帮忙
  • 在syscall_table_32.S中添加系统调用表项时,每一项前面的
  • fedora 12下添加自定义系统调用的问题,请帮忙
  • 向系统添加一个系统调用中出现的问题
  • 最后3分,再问一个问题,要在/etc/rc.d/rc.local里添加脚本用来调用一个可执行程序,该怎么写代码?谢谢
  • VMware fedora 11下添加系统调用的问题
  • 郁闷啊!系统调用添加问题?
  • linux0.11内核添加了一个新的系统调用,返回-1
  • sql添加数据后返回受影响行数据
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 push_back():在Vector最后添加一个元素
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?
  • C++ Lists(链表) 成员 push_front():在list的头部添加一个元素
  • /etc/hosts中添加的域名信息,用哪个命令可以测试添加的内容是否正确?
  • C++ Lists(链表) 成员 push_back():在list的末尾添加一个元素
  • android中如果为listview的item添加listener,也能为item中的button添加listener
  • javascript 添加到收藏夹和书签代码示例
  • linux向压缩包中添加文件,怎么添加不进去?
  • C++ Strings(字符串) 成员 append():在字符串的末尾添加文本
  • 局域网共享上网,使用nat时在postrouting中添加masquerade规则允许往外发送,prerouting是不是也要添加规则。
  • php安装完成后如何添加mysql扩展
  • 为mysql数据库添加添加事务处理的方法
  • extjs介绍及在myeclipse中添加extjs步骤
  • linux系统下怎么添加在windows底下的盘
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • mysql 添加索引 mysql 如何创建索引
  • 怎样添加内核启动参数???
  • linux~shell~如何取变量的值并在后面添加字符?
  • 添加用户名与密码? 散分
  • linux3.0.0.12内核怎么添加系统调用 iis7站长之家
  • ASP.NET 页面中加添加用户控件的写法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3