【发布时间】:2014-12-05 07:50:02
【问题描述】:
我有以下系统调用:
long do_print(int n, char *p){
char tmp[n]; //allocate array of n bytes
int ret = copy_from_user(tmp,p,n);
if (!ret){
//do something with tmp
}
return ret;
}
它为n>5000 返回非零值(我估计是因为页面错误)。
如何强制复制成功。也就是说,如果系统调用返回非零值怎么办?
【问题讨论】:
标签: c linux memory linux-kernel operating-system