-4
A
回答
3
不,sendmsg()
不釋放傳入的內存。它不可能這樣做,因爲該內存可能不是來自malloc()
。你可以在sendmsg()
之後的任何時候撥打free()
,因爲系統已經做好了必要的拷貝。
+0
由於某種原因,我發現「......內存可能甚至不是來自malloc()」的線條「幽默」。 –
0
不,你不能釋放它。它只是發送使用msghdr
結構的內存字節。
通常你分配內存寫入的msghdr
iovec的,並呼籲SENDMSG將它轉移作爲,
char buffer[SIZE]="DATA"; // Data to send into buffer
struct iovec io; // Segment which will store outgoing message
struct msghdr msgh; // msghdr structure
...
io.iov_base = buffer; // Specify the components of the message in an iovec
io.iov_len = SIZE;
msgh.msg_iov = &io;
...
sendmsg(fd,&msgh,0); // send msg which just send msg in a iovec buffer
+0
謝謝。我現在明白了。再次感謝。 –
相關問題
- 1. Akka的消息類:發送數組/緩衝區作爲消息
- 2. SocketAsyncEventArgs緩衝區填充「System.Byte []」而不是發送消息
- 3. 將消息發送到Ruby中的全局緩衝區
- 4. 發送消息到用戶空間的printk緩衝區 - 不工作
- 5. 擴展小緩衝區消息保存緩衝
- 6. 從iOS發送C++協議緩衝區消息
- 7. 通過消息隊列發送可變大小緩衝區
- 8. 通過消息隊列發送緩衝區
- 9. 如何獲取Emacs消息模式來終止發送消息緩衝區?
- 10. 檢查stdin緩衝區是否爲空
- 11. 在協議緩衝區消息中存儲二進制數據緩衝區
- 12. 是否緩衝或無緩衝的System.out?
- 13. 是否可以將字節[]的緩衝區發送到屏幕?
- 14. 未緩衝的JspWriter發送給PrintWriter,是否緩衝了?
- 15. tcp緩衝區中的多條消息
- 16. 損壞的協議緩衝區消息
- 17. C中的緩衝區消息
- 18. 異步Udp消息的緩衝區
- 19. kmalloc中的緩衝區是否也是DMA安全緩衝區?
- 20. 使用winsoc發送緩衝區後可以刪除內存嗎?
- 21. 如何將log4cplus appender輸出發送到內存緩衝區?
- 22. 緩衝區內存分配
- 23. 比較內存緩衝區
- 24. 使下緩衝的emacs跳過*消息*緩衝區
- 25. EAGAIN是否會返回發送緩衝區已滿以外的任何內容?
- 26. 是否可以創建併發送零長度緩衝區
- 27. 如何找出Windows套接字發送緩衝區是否爲空?
- 28. C++類應該包含協議緩衝區消息還是從協議緩衝區消息構建/填充
- 29. Ruby的CSV.open緩衝區是否可以一次寫入內存?
- 30. 是發送/接收數據包緩衝區相同預分配的內存
你的問題沒有任何意義! –
您將不得不閱讀文檔。 –
你有任何代碼可以與你正在嘗試的一致嗎? – MattR