![](/img/trans.png)
[英]Why does a shared memory (in ipc) not require context switching ? Is it a memory from kernel space that gets mapped to user space?
[英]Read from a socket without the associated memcpy from kernel space to user space
在Linux中,有没有一种方法可以从套接字读取数据,同时又可以避免从内核空间到用户空间的数据隐式存储?
也就是说,而不是做
ssize_t n = read(socket_fd, buffer, count);
这显然需要内核从网络缓冲区到提供的缓冲区进行memcpy,我会做类似的事情
ssize_t n = fancy_read(socket_fd, &buffer, count);
返回时,缓冲区将指向从网络接收到的非memcpy()数据。
最初,我认为套接字系列的AF_PACKET选项可以提供帮助,但没有帮助。
尽管如此,从技术上讲还是有可能的,因为没有什么可以阻止您实现内核模块处理系统调用,该系统调用返回用户映射的指针到内核数据(即使它不是很安全)。
有关您希望拨打的电话,有几个问题:
这些可以通过多种方式完成,因此基本上可以,但是您需要考虑很多因素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.