![](/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.