Dag-Erling Smørgrav <d...@des.no> writes: > Xin LI <delp...@delphij.net> writes: >> deeptec...@gmail.com writes: >> > Some C implementations use the read-4-bytes-ahead technique to speed >> > up strlen(). Does the C standard state anything about strlen() being >> > allowed to read past the terminating zero? >> It's not 4-bytes-ahead, but read a whole (aligned) word at one time. >> I think C standard does not dictate in this detail. > > My guess is that it invokes undefined behavior, but it doesn't matter in > practice, because as long as you only read one aligned word at a time, > and as long as the pointer you got is valid and points to a properly > terminated string, you might read trash (which is expected), but you > will never read unmapped memory.
strlen() is part of the implementation, and doesn't have to worry about undefined behaviour. Any conforming *program* will work properly, and that's all the standard library needs to ensure. _______________________________________________ freebsd-chat@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-chat To unsubscribe, send any mail to "freebsd-chat-unsubscr...@freebsd.org"