我在 execve 系统调用中看到了这种类型:
asmlinkage long sys_execve(const char __user *filename,
const char __user *const __user *argv,
const char __user *const __user *envp);
do_execve(struct filename *filename,
const char __user *const __user *__argv,
const char __user *const __user *__envp)
是什么意思
const char __user *const __user *
?
最佳答案
当您通读 file_operations
方法列表时,您会注意到许多参数包括 string __user
。该注解是一种文档形式,指出指针是不能直接访问的用户空间地址
取消引用。对于正常的编译,__user
没有作用,但是可以被
用于查找用户空间地址滥用情况的外部检查软件。
关于linux - 参数类型 : "const char __user *const __user *argv" 的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405442/