注册 登录
编程论坛 Linux教室

这样修改函数对不对?

昨日之风 发布于 2008-04-23 20:29, 1294 次点击
这是在linux下系统调用的时候用

原:_syscall1(int,mycall,int,ret)
修改:int mycall(int ret)
{return syscall(__NR_mycall,ret);
}

那么  _syscall2(int,mycopy,const char *,s_file,const char *,t_file)
能不能修改成:
int mycopy(const char * s_file,const char * t_file)
{return(__NR_mycopy,* s_file,* t_file);
}

附:mycopy在sys.c中的定义  其中  操作正确返回0 否则返回其它值
asmlinkage int sys_mycopy(const char* s_file, const char* t_file){




}  

我的问题:1、如上面  能否修改
          2、为什么我使用_syscall1(int,mycall,int,ret)不能调用  会报错  而
int mycall(int ret)
{return syscall(__NR_mycall,ret);
}可以,这是什么原因?
2 回复
#2
guixiaolan2008-04-23 20:53
呵,这是Linux内核下的函数吗?
Linux下C的调用什么的,有很多可能与TC什么的有所不同.
#3
昨日之风2008-04-24 18:18
回复 2# 的帖子
恩,我就是想添加一个系统调用函数。
但是:_syscall1(int,mycall,int,ret)这种形式老是报错
只能修改,但是修改后无法完成任务
1