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

系统调用问题,帮忙看看,谢谢!

    来源: 互联网  发布时间:2016-05-03

    本文导语:  我在添加系统调用时,在最后编译的时候遇到了如下错误: [root@localhost ~]# gcc test.c test.c: 在函数 '_syscall0' 中: test.c:7: 错误:expected '=', ',', ';', 'asm' or '__attribute__' before '{' token test.c:5: 错误:省略了形参...

我在添加系统调用时,在最后编译的时候遇到了如下错误:
[root@localhost ~]# gcc test.c
test.c: 在函数 '_syscall0' 中:
test.c:7: 错误:expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
test.c:5: 错误:省略了形参的名字
test.c:10: 错误:expected '{' at end of input

我的具体步骤是这样的:
1./usr/src/linux/kernel/sys.c中最后添加:
asmlinkage int sys_hello(void)
{
printk("hello world!n");
return 0;
}

2./usr/src/linux/include/asm-i386/unistd.h中添加:
#define __NR_hello              320
下面改为#define NR_syscalls 321

3./usr/src/linux/arch/i386/kernel/syscall_table.S中添加:
      .long sys_hello         /*320*/

4./usr/include/asm/unistd.h中添加:
#define __NR_hello              320

最后重新编译内核:make mrproper; make menuconfig; make; make modules_install; make install; reboot; 一直都没有出错,然后进入新内核,(我的内核版本是2.6.21.6), 
/root下添加test.c:
#include 
#include 
#define __NR_hello 320
int errno;
_syscall0(int, hello)
int main()
{
hello();
return 0;
}

然后,gcc test.c
便出现了上述错误,不明白为什么,请问这是什么原因?这其中有什么做错的吗?
希望得到大家的指点,麻烦大家了,谢谢!


|
_syscall0(int, hello) 要在内核空间定义,用户空间不支持__asm__,__attribute__这些gnu扩展。

|
用户空间访问的不能用_syscall0

|
2.4的时候我用_SYSCALL0成功过 2.6后来就直接用SYSCALL(调用号,参数)

|
我也看到 有人用_syscall0成功过
http://blog.csdn.net/rickey_berkeley/archive/2005/09/02/470362.aspx

我试了也没成功。

    
 
 

您可能感兴趣的文章:

  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • Linux添加系统调用时如何调用C语言库函数
  • 问:系统调用的原理,一个C函数的系统调用是怎样进入到系统的?
  • 截获系统调用的模块中,如何获得发生系统调用eip
  • linux中为什么系统调用比普通函数调用更费时间?
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • MINIX3 系统如何添加系统调用
  • 关于minix文件系统中dup的系统调用问题
  • 在LINUX中使用C调用系统命令,怎么取得系统命令的输出?
  • 在linux kernel 里添加了系统调用,如何在用户程序中调用添加的系统调用呢?急
  • 系统调用对应的内核函数在什么地方
  • 增加系统调用
  • 急急 solaris 系统被自己的进程调用太多堵死了,其它系统进程也运行不了,有没有什么好的办法啊?在线等!!!!
  • 望指点:系统调用与函数库关系
  • 如何用系统调用实现每秒钟显示一次系统时钟,可以用getitimer,setitimer,alarm?
  • 我自己写了一个一个程序,文件名叫test。。怎么能够像调用系统命令那样子去调用我这个命令呢。在任何地方输入test就能执行这个程序。
  • settimeofday系统调用只是修改了系统时间?!没写进硬件?重启后时间还是1970怎么办??感谢路过的大神指点
  • 关于Linux系统调用的问题!
  • C库函数和linux系统调用区别
  • U盘的LINUX系统问题,大虾们帮帮忙。
  • 请大家帮忙提供资料:如何将windows系统服务程序移植为linux系统服务?
  • 急!大家帮帮忙!有哪些视频点播系统能在在LINUX下安装以及怎样安装!
  • 急!大家帮帮忙!有什么视频点播系统能在LINUX下安装,以及怎样安装!!
  • 急!!!!系统不能启动,请大家来帮忙
  • 请大家帮忙推荐几本关于操作系统、面向对象的书!
  • 请教如何安装unix系统,不胜感激,快来帮忙
  • 系统安装问题,请教,谢谢!!! iis7站长之家
  • 我就想要下载个简单的UNIX操作系统,做学习用.各位朋友,帮帮忙吗..
  • 关于solaris系统halt命令,高手帮忙,十万火急
  • 关于unix操作系统的三个试题,谁能帮忙解答?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:J2EE系统在Unix 系统中出现乱码问题?谢谢
  • 谁有操作系统PV操作的例子???谁有操作系统PV操作的例子???谢谢!!
  • 想学习LINUX系统,公司新产品使用的系统,到那里下载 谢谢
  • 使用ps命令,如何使用系统命令根据进程名称获取进程和子进程的ID?除了ps,还有其它系统命令的办法吗?谢谢。
  • 请问如何实现提取系统设置的环境变量?谢谢先。
  • 我的radhat 9.0 的文件系统坏了,在线等待,急急急,谢谢
  • 问Linux高手一个安卓系统的问题,麻烦回答一下,谢谢!
  • 我是新手,请问在哪里更改系统时间?谢谢
  • 系统安装问题,请教,谢谢!!!
  • 请问哪有Lindows操作系统下载?50分,谢谢。
  • java有没有调用系统时间的方法?谢谢!
  • 请问有谁知道那里有Linux系统的ADSL拨号软件下载!谢谢!
  • 我的RED HAT LINUX 的文件系统出了错误,怎样解结?谢谢!
  • 请大家推荐在日文系统下好的java编辑器(类似jcreator),谢谢!!
  • linux系统在图形模式下,怎样调出vi编辑器??谢谢!!
  • 在sun solaris 8系统下有没有具编辑、编译、调试一体的集成C(C++)开发工具?谢谢!
  • 有关VMWare,不能启动操作系统! 谢谢!
  • 怎样学好操作系统呀.谢谢
  • 系统用户问题请教,谢谢
  • 在LINUX系统中如果网络设备没有中断的话,可以通过查询接收包吗?谢谢!
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 问一个系统配置的问题:win2k系统能不能于SCO UNIX系统共存?
  • win7/Windows7系统下载地址搜集整理
  • unix下用java.util.Date取系统时间比直接在系统下用date命令查看系统时间早整整一个小时
  • Ubuntu查看系统信息命令介绍
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 我现在想做一个权限管理系统,想让权限系统的利用性更强,我应该怎样设计权限系统呢.
  • 怎样重装win7系统?win7重装系统步骤详细图文介绍
  • 谁知道哪里有用java开发的管理信息系统软件(如:图书馆管理系统,人事部管理系统)的代码?
  • windows server2008上PowerBuilder程序系统错误解决方法


  • 站内导航:


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

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

    浙ICP备11055608号-3