В классе системного программирования я взял этот предыдущий семестр, нам пришлось реализовать базовый клиент/сервер в C. При инициализации структур, например буферов sock_addr_in или char (которые мы использовали для отправки данных назад и между клиентом и сервером) профессор поручил нам использовать bzero, а не memset для их инициализации. Он никогда не объяснял, почему, и мне любопытно, есть ли веская причина для этого?
Я вижу здесь: http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown, что bzero более эффективен из-за того, что только когда-либо будет обнулять память, поэтому нет необходимости выполнять дополнительную проверку, которую может выполнять memset. Это все еще не обязательно является повод для абсолютно не использовать memset для обнуления памяти.
 bzero считается устаревшим и, кроме того, не является стандартной функцией С. Согласно руководству, memset является предпочтительным по сравнению с bzero по этой причине. Итак, почему вы хотите использовать bzero над memset? Просто для повышения эффективности, или это нечто большее? Кроме того, каковы преимущества memset over bzero, которые делают его де-факто предпочтительным вариантом для более новых программ?
