public inbox for linux-man@vger.kernel.org
 help / color / mirror / Atom feed
From: Jon Grant <jg-hus3n9K41k0@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: linux strlen man page accepts NULL?
Date: Mon, 10 Aug 2009 13:06:27 +0100	[thread overview]
Message-ID: <19ac3f7a0908100506j7ec9933gec944f3b5bb92ef0@mail.gmail.com> (raw)
In-Reply-To: <cfd18e0f0908071251h27d2d7d6o4c7d8ae2a4c1913f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hello

2009/8/7 Michael Kerrisk <mtk.manpages-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>:
> Jon,
>
> On Fri, Aug 7, 2009 at 1:55 PM, Jon Grant<jg-hus3n9K41k0@public.gmane.org> wrote:
>> Looking at this man page:
>>
>> http://linux.die.net/man/3/strlen
>>
>> Should it not mention that a NULL address is a valid param? Or is it
>> not a valid param?
>
> What makes you think it is a valid parameter?

NULL points to 0x0, which could be mapped to something. On my embedded
platform it is the beginning of the boot ROM. However typically 0x0 is
an invalid address, in which case strlen should check for NULL, and
return 0

e.g.:

size_t strlen(const char *str)
{
        const char *s;

if(str == NULL)
{
    return 0;
}

        for (s = str; *s; ++s)
                ;
        return (s - str);
}

>> On most systems NULL is a special error pointer.
>
> I don't understand what you mean with this last sentence. Please explain.

Well, the purpose of strlen is to count chars (excluding terminating
'\0') but on most systems address 0x0 [which is what NULL is, (void*)0
].

So if something is mapped by the hardware at 0x0 address then strlen
could be used to count the number of characters at that location.
However, on most systems his 0x0 address (NULL) indicates an invalid
address.

I am not on this mailing list, so please keep my email address in any replies.

Best regards, Jon
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-08-10 12:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-07 11:55 linux strlen man page accepts NULL? Jon Grant
     [not found] ` <19ac3f7a0908070455s33ecb5efo6810eb7959df1f70-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-07 19:51   ` Michael Kerrisk
     [not found]     ` <cfd18e0f0908071251h27d2d7d6o4c7d8ae2a4c1913f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-10 12:06       ` Jon Grant [this message]
     [not found]         ` <19ac3f7a0908100506j7ec9933gec944f3b5bb92ef0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-09-20  2:41           ` Michael Kerrisk
     [not found]             ` <cfd18e0f0909191941s421596b1ne08da9906f4e4d5d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-09-22  6:43               ` Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19ac3f7a0908100506j7ec9933gec944f3b5bb92ef0@mail.gmail.com \
    --to=jg-hus3n9k41k0@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox