当我从 TCP 套接字读取时发生了多少内存副本

How many memory copies occur when I read from TCP socket

我的应用程序运行 read(sockfd, buffer, BUFFSIZE, 0)。我知道内核需要在幕后做一些复制工作。栈上分配buffer会发生多少次内存拷贝,堆上分配buffer会不会变化?

谢谢。

不管buffer在heap还是stack上,内存拷贝数总是一样的。区别仅在于复制数据的内存位于何处。

在堆栈的情况下,你可以进入堆栈溢出,你的程序将有未定义的行为,而如果你在堆上这样做,如果你不释放内存,你可以进入内存泄漏需要它了