Subject: Re: error checking wrapper function proposal
To: None <tech-userlevel@NetBSD.org>
From: Chapman Flack <nblists@anastigmatix.net>
List: tech-userlevel
Date: 06/19/2006 14:48:48
Elad Efrat wrote:
> Please express your concerns on the relevant thread on tech-userlevel@
> and not retroactively on source-changes@.
>
> -e.
>
>>> void
>>> estrlcpy(char *dst, char *src, size_t len)
>>> {
>>> if (strlcpy(dst, src, len) >= len) {
>>> errno = ENAMETOOLONG;
>>> err(1, "Cannot copy `%s'", src);
>>> }
>>> }
>>
>>
>>This seems to be a bit of a pun on ENAMETOOLONG, which is defined
>>(by SUS and us) to be filename-specific, and to mean precisely that
>>a component of a pathname exceeded NAME_MAX(resp. MAXNAMELEN) or that
>>the entire path exceeded PATH_MAX(resp. MAXPATHLEN-1).
>>
>>Obviously the function doesn't return, so it isn't a matter of
>>misleading the caller, but it will still print the message "File name
>>too long" which is a little odd and could send a user down the wrong
>>track trying to figure out why the utility might have failed. Would it
>>be bad to use errx and a specific message?
>>
>>-Chap