Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用netlink可以传递的最大缓冲区大小以及页面大小对其的影响_C_Linux_Sockets_Linux Kernel_Netlink - Fatal编程技术网

C 使用netlink可以传递的最大缓冲区大小以及页面大小对其的影响

C 使用netlink可以传递的最大缓冲区大小以及页面大小对其的影响,c,linux,sockets,linux-kernel,netlink,C,Linux,Sockets,Linux Kernel,Netlink,我正在开发一个应用程序(ARM平台),它使用netlink消息将大小为8k的缓冲区传递给内核空间驱动程序,以从驱动程序中获取一些数据。我已使用函数nlmsg\u alloc\u size()为nl消息分配了所需内存,但当缓冲区大小超过4k时,我们无法从驱动程序获取数据,即使驱动程序能够接收带缓冲区的netlink命令 因此,我们检查了内核源代码,发现内核中ARM的缓冲区大小限制为4096 那么,是否可以使用超过4k的缓冲区发送netlink消息?如果是这样,请提出解决方案。我相信这是最大值。如果

我正在开发一个应用程序(ARM平台),它使用netlink消息将大小为8k的缓冲区传递给内核空间驱动程序,以从驱动程序中获取一些数据。我已使用函数
nlmsg\u alloc\u size()
为nl消息分配了所需内存,但当缓冲区大小超过4k时,我们无法从驱动程序获取数据,即使驱动程序能够接收带缓冲区的netlink命令

因此,我们检查了内核源代码,发现内核中ARM的缓冲区大小限制为4096


那么,是否可以使用超过4k的缓冲区发送netlink消息?如果是这样,请提出解决方案。

我相信这是最大值。如果你想发送更多的数据,你可以随时将其分割。嗨,Yd Ahhrk,谢谢你的回复。我已经浏览了一些链接,但没有找到任何相关链接来描述如何将大缓冲区分割成小缓冲区。那么,你能引导我通过相关链接吗?或者如果你不介意,请你解释一下。提前谢谢