Mak*_*akc 3 c linux memory kernel memory-management
我正试着打电话
sys_readlink(const char __user *path, char __user *buf, int bufsiz)
Run Code Online (Sandbox Code Playgroud)
直接,但获取EFAULT错误代码.出现此错误是因为buf指向内核空间的内存.
那么,是否有可能从内核分配用户空间内存?
kmalloc(size, GFP_USER)类似于kmalloc(size, GFP_KERNEL)
并返回指向内核内存的指针.
您可以使用临时禁用内存地址有效性检查 set_fs
mm_segment_t old_fs;
old_fs = get_fs();
set_fs(KERNEL_DS);
/* Your syscall here */
set_fs(old_fs);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3630 次 |
| 最近记录: |