-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