gpt4 book ai didi

c - 如何在内核程序中使用copy_to_user()?

转载 作者:行者123 更新时间:2023-11-30 21:33:01 25 4
gpt4 key购买 nike

我尝试使用copy_to_user()在循环内。

for_each_process(p) {
copy_to_user(buf, "data of p", len);
}

但是,我得到的输出是不同的。它只有用户空间的最后一行数据,例如

#Data expected to copy to user space

123 1234 12 21
1243 124 423 12
1234 422 42 423

#Current Output:
1234 422 42 423

如何将每一行从内核空间复制到用户空间?

最佳答案

How many times can you use copy_to_user() in a kernel program?

您想要多少次都可以。但它们必须有意义(因为你在任何类型的程序中所做的任何事情都必须有意义)。

I thought if the data that is passed into the copy_to_user() will append the data to the next line.

不,copy_to_user 不会附加任何内容。我不确定你从哪里得到这个想法。

What is actually happening

嗯,您正在复制第一个进程的数据,然后用第二个进程的数据覆盖它,然后用第三个进程的数据覆盖它,依此类推。最后,您剩下第三个进程的数据。

How do transfer all three lines to the user space from the kernel space?

将每个进程的数据存储在不同的位置。

关于c - 如何在内核程序中使用copy_to_user()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com