| High level string libraries are a win. But you may be overstating your case a bit. From my codebase/third-party directory on my laptop (a bit random, I admit), from those projects I'd consider "competent C" (ie, not OpenSSL or MRI ruby): * dovecot uses ASCIIZ strings and libc string functions * redis uses ASCIIZ strings and libc string functions * nginx uses a high-level buffered string library * lcamtuf's skipfish scanner uses ASCIIZ strings and libc string functions * libevent uses ASCIIZ strings and libc string functions * qmail uses djb's string library * memcached uses ASCIIZ strings and libc string functions It's probably good to be comfortable with both approaches. I don't know that you actually made this claim, but you seem to have given people here the impression that you believe functions that work with ASCIIZ strings should be bulletproofed to handle non-ASCIIZ inputs. I couldn't agree with that argument, especially as an argument about K&R's code being rusty. People here are jumpy though (they're commenting, like me, mostly because they're bored). Looking forward to more examples from the book. |