(1)拷贝程序
asmlinkage int sys_copy(char * source, char * aim)
{
int fp1, fp2;
int i;
mm_segment_t fs;
fs = get_fs();
set_fs(get_ds());
fp1 = sys_open(source,O_RDONLY,0);
fp2 = sys_open(aim,O_WRONLY|O_CREAT|O_TRUNC,0600);
char p;
if(!fp1)
{
printk("输入参数错误\n");
return -1;
}
while(i=sys_read(fp1,&p,1))
sys_write(fp2,&p,1);
sys_close(fp1);
sys_close(fp2);
set_fs(fs);
return 0;
}
(2)测试程序
#include <syscall.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
syscall(314,"source.txt","aim.txt");
return 0;
}