Since I'm CCed on this I'll chuck in two cents... At 2023-01-04T19:41:30+0000, Wilco Dijkstra wrote: > > bzero(3) is much more useful than memset(3).  I've only used > > memset(3) for something non-zero once in my life, IIRC.  Writing > > bzero(p, n) is easier to get right, and simpler. > > It may save a few keypresses but it's dead so all you're doing is > confuse people who have never heard of it... I agree with Wilco here. My understanding is that memset(), memcpy(), and memmove() are almost C language primitives masquerading as function calls, in that the language is _unimplementable_, even in a freestanding environment, without them. (How are you going to copy a struct? How are you going to work safely with hunks of allocated memory?[1]) The line between language runtime services and operating system services is fuzzy in C, at least as the the language is presented and taught. Slowly, over time, that line is being clarified, to the horror of those who remember writing C on a PDP-11. You can always have your own static function: memclear() or something. The b in bzero() or for Bad BSD Bogosity. Ban it. :P Like index() and rindex() it is duplicative. Regards, Branden [1] That last point may be contrived. For many years, no one cared.