Subject: Re: 'Safe' string copy: strlcpy() or strncpy() ?
To: Jaromír Dolecek <dolecek@ics.muni.cz>
From: Johan Danielsson <joda@pdc.kth.se>
List: tech-userlevel
Date: 01/26/2001 23:07:37
Jarom=EDr Dolecek <dolecek@ics.muni.cz> writes:
> I think that the former is less error prone, so it should probably
> be preferred (even when one doesn't care that strncpy() appends
> '\0's if 'othersrc' is shorter than sizeof(str)). On the other hand,
> strlcpy() is not part of any standard yet.
Depends what you aim at. If you want a really portable program without
configuration, you apparently can't use these functions (recent
Solaris also has them). If not, I don't see any reason not to use
them. They are simple enough, so it should be trivial to include in
any application.
> Separate, though related question: should old code be converted to
> use strlcpy() instead of strncpy() ?
I don't think you should put too much effort into a mass conversion
project. The problem with this is that you are quite likely to get it
wrong in many places, like the
strcpy(foo, bar) -> strlcpy(foo, bar, sizeof(foo))=20
conversion for `char *foo'. There are places where the strncpy
behaviour is really used, even if they are not that common.
/Johan