Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: strtok() implementation |
| Date | 2016-03-14 14:50 -0700 |
| Organization | None to speak of |
| Message-ID | <lnfuvsk9va.fsf@kst-u.example.com> (permalink) |
| References | <56e59164$0$27830$426a74cc@news.free.fr> <dkmm42F53ugU2@mid.individual.net> <56e70d11$0$4562$426a74cc@news.free.fr> <dkomcrFn02uU2@mid.individual.net> <b62598b0-dadc-48c2-aca0-0632ef0a6151@googlegroups.com> |
Malcolm McLean <malcolm.mclean5@btinternet.com> writes:
> On Monday, March 14, 2016 at 8:48:38 PM UTC, Ian Collins wrote:
>>
>> There's a gap in the standard there, it does not specify the behaviour
>> when the delimiter is null. My standard library's strtok shares a crash
>> with your version if I run that particular test :)
>>
> I'd just match the whole string.
> In the olden days an empty string and the null character pointer
> were the same.
Nope.
On some systems (such as, IIRC, SunOS on 68k), a null pointer pointed to
address 0, and that location happened to be readable and contain a 0
byte. As a result, passing a null pointer to a string function often
had the same effect as passing a valid pointer to an empty string, and
some code (probably inadvertently) depended on that. A lot of latent
bugs were detected when the system was changed to protect memory page
zero.
K&R1 page 97 says:
C guarantees that no pointer that validly points at data will
contain zero ...
Therefore a null (zero) pointer does not point to valid data. An empty
string is valid data, consisting of a single null character.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
strtok() implementation boon <root@localhost> - 2016-03-13 17:13 +0100
Re: strtok() implementation Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-03-13 10:04 -0700
Re: strtok() implementation boon <root@localhost> - 2016-03-13 18:51 +0100
Re: strtok() implementation Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-13 13:38 -0400
Re: strtok() implementation boon <root@localhost> - 2016-03-13 19:05 +0100
Re: strtok() implementation Keith Thompson <kst-u@mib.org> - 2016-03-13 13:50 -0700
Re: strtok() implementation boon <root@localhost> - 2016-03-13 23:10 +0100
Re: strtok() implementation boon <root@localhost> - 2016-03-13 21:06 +0100
Re: strtok() implementation Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-13 16:26 -0400
Re: strtok() implementation boon <root@localhost> - 2016-03-13 22:52 +0100
Re: strtok() implementation boon <root@localhost> - 2016-03-13 23:25 +0100
Re: strtok() implementation Ian Collins <ian-news@hotmail.com> - 2016-03-14 15:26 +1300
Re: strtok() implementation boon <root@localhost.localdomain> - 2016-03-14 12:44 +0100
Re: strtok() implementation Tim Rentsch <txr@alumni.caltech.edu> - 2016-03-17 08:23 -0700
Re: strtok() implementation boon <root@localhost> - 2016-03-18 21:09 +0100
Re: strtok() implementation Tim Rentsch <txr@alumni.caltech.edu> - 2016-03-19 14:21 -0700
Re: strtok() implementation Randy Howard <rhoward.mx@EverybodyUsesIt.com> - 2016-03-19 16:25 -0500
Re: strtok() implementation boon <fred900rbc@gmail.com> - 2016-03-24 13:05 -0700
Re: strtok() implementation Tim Rentsch <txr@alumni.caltech.edu> - 2016-03-30 09:13 -0700
Re: strtok() implementation Randy Howard <rhoward.mx@EverybodyUsesIt.com> - 2016-03-30 14:44 -0500
Re: strtok() implementation boon <root@127.10.10.1> - 2016-03-31 10:24 +0200
Re: strtok() implementation Tim Rentsch <txr@alumni.caltech.edu> - 2016-04-05 12:23 -0700
Re: strtok() implementation Ian Collins <ian-news@hotmail.com> - 2016-03-14 15:31 +1300
Re: strtok() implementation boon <root@localhost> - 2016-03-14 20:13 +0100
Re: strtok() implementation Ian Collins <ian-news@hotmail.com> - 2016-03-15 09:48 +1300
Re: strtok() implementation Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-03-14 14:05 -0700
Re: strtok() implementation Ian Collins <ian-news@hotmail.com> - 2016-03-15 10:09 +1300
Re: strtok() implementation Richard Heathfield <rjh@cpax.org.uk> - 2016-03-14 22:02 +0000
Re: strtok() implementation Gareth Owen <gwowen@gmail.com> - 2016-03-14 22:16 +0000
Re: strtok() implementation Keith Thompson <kst-u@mib.org> - 2016-03-14 14:50 -0700
Re: strtok() implementation raltbos@xs4all.nl (Richard Bos) - 2016-03-14 22:06 +0000
Re: strtok() implementation boon <root@localhost> - 2016-03-15 22:14 +0100
Re: strtok() implementation BartC <bc@freeuk.com> - 2016-03-15 21:23 +0000
Re: strtok() implementation raltbos@xs4all.nl (Richard Bos) - 2016-03-17 12:27 +0000
Re: strtok() implementation boon <root@localhost> - 2016-03-15 22:04 +0100
Re: strtok() implementation Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-15 18:18 -0400
Re: strtok() implementation boon <root@localhost> - 2016-03-18 21:19 +0100
Re: strtok() implementation boon <root@localhost> - 2016-03-15 22:08 +0100
Re: strtok() implementation boon <root@localhost> - 2016-03-15 22:32 +0100
csiph-web