Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: strtok() and the mistery of the same address strings with different lengths... Date: Sat, 14 Jan 2017 14:21:23 -0800 Organization: None to speak of Lines: 22 Message-ID: References: <94292e94-bcb9-40ea-8b8a-2a8563eeb33e@googlegroups.com> <6e096b3f-1e35-49ae-8887-637f94fc6d51@googlegroups.com> <87d1fpn0f6.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx02.eternal-september.org; posting-host="ba0db46df61d502ee0e6afe10bb5a782"; logging-data="13715"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18h1bHzkHkU+U3K9Kxi26V2" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:qg6LWAOG9kVByBvjO/KbYITI2vA= sha1:UdPazkoSD/bGtawEBODrzJ8PoFs= Xref: csiph.com comp.lang.c:101814 Ben Bacarisse writes: > "Fernando D. Bozzo" writes: >> Let's say I create a malloc'ed copy of the original string with >> strdup(), then use strtok() for parsing it: > > strdup is not a standard C function. I mention this only because if you > are using non-standard functions you can use strtok_r too. > >> 1) Is this thread safe, given that I give it a new memory segment? > > Just don't use it. Use the _r version instead. If you are not using > threads, the don't worry about it. [...] strtok_s is standard, but it's specified in Annex K, which is new in C11 and optional. -- Keith Thompson (The_Other_Keith) kst-u@mib.org 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"