Mon application s'exécute read(sockfd, buffer, BUFFSIZE, 0)
. Je sais que le noyau doit faire un travail de copie derrière la scène. Combien de copies de mémoire se produisent lorsque buffer
est alloué sur la pile, et changera-t-il si buffer
est alloué sur le tas?Combien de copies de mémoire se produisent lorsque je lis à partir du socket TCP
Merci.
Cela dépend vraiment. De quel noyau parlons-nous? Quelle version de cela? –
'read (sockfd, buffer, BUFFSIZE, 0)' ??? ** QUATRE ** paramètres? ['read()' prend trois] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html): 'ssize_t read (int, void *, size_t);'. –
@Someprogrammerdude Je ne crois pas qu'il y ait de différence entre la mémoire de tas ou de pile dans le nombre de copies. Mais je crois qu'il y a une différence entre les versions (que je ne comprends pas comme la question qu'il veut). :) – tilz0R