Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #101463

Re: standard error codes

From Lew Pitcher <lew.pitcher@digitalfreehold.ca>
Newsgroups comp.lang.c
Subject Re: standard error codes
Followup-To comp.lang.c
Date 2017-01-11 15:58 -0500
Organization The Pitcher Digital Freehold
Message-ID <o5667d$lct$1@dont-email.me> (permalink)
References (15 earlier) <e1efc303-fba2-4536-ba9e-e69fc3edffb1@googlegroups.com> <o55t89$k2e$1@dont-email.me> <o55vqs$u6v$1@dont-email.me> <o564lg$gv4$1@dont-email.me> <o565ka$kf7$1@dont-email.me>

Followups directed to: comp.lang.c

Show all headers | View raw


On Wednesday January 11 2017 15:48, in comp.lang.c, "Richard Heathfield" 
<rjh@cpax.org.uk> wrote:

> On 11/01/17 20:32, Lew Pitcher wrote:
>> On Wednesday January 11 2017 14:09, in comp.lang.c, "BartC" <bc@freeuk.com>
>> wrote:
>>
>>> On 11/01/2017 18:25, Richard Heathfield wrote:
>>>> On 11/01/17 16:16, supercat@casperkitty.com wrote:
>>>>> On Tuesday, January 10, 2017 at 2:10:56 PM UTC-6, Keith Thompson wrote:
>>>>>> It would be odd to add memeq() but not streq() to the standard.
>>>>>
>>>>> How many str* functions are used be even 0.1% of C programs?
>>>>
>>>> I'll have 'em if you don't want 'em.
>>>>
>>>> I haven't done the arithmetic, so I don't know about "most", but I would
>>>> certainly say that /many/ of my C programs use str* functions, and it
>>>> may even be "most".
>>>>
>>>>> The strlen
>>>>> function is essentially as good and safe as any other alternative in the
>>>>> common situation where code receives a pointer to a string held in a
>>>>> buffer of unknown size, so it gets used quite a bit.  In many cases,
>>>>> however, strlen() can be combined with mem* functions to yield faster
>>>>> and safer code than trying to use other str* functions.
>>>>>
>>>>> Given that there are many holes in the str* functions far worse than the
>>>>> lack of an streq function, it would be odd to add streq without fixing
>>>>> all
>>>>> those other holes first.
>>>>
>>>> Yes, I'd agree with that. We don't need a streq function. What's wrong
>>>> with strcmp?
>>>
>>> Because 99% of all calls to strcmp use it to compare for string equality?
>>>
>>> I've looked at some codebases and the overwhelming use of strcmp seems
>>> to either use strcmp(s,t)==0, or !strcmp(s,t). Neither looks obviously
>>> like a test for equality.
>>>
>>> In one or two places, I saw a call like this: if (strcmp(s,t)), which is
>>> even less intuitive (I think it tests whether s is not equal to t).
>>>
>>> With streq, those first calls would look like this:
>>>
>>>     if (streq(s,t))
>>>
>>> and the second like this:
>>>
>>>     if ( !streq(s,t))
>>>
>>> In theory, because could create a streq-like function using macros or a
>>> wrapper, but someone neglected to tell the people who wrote this code!
>>>
>>> It doesn't happen.
>>
>> I would interpret the observation a bit differently:
>>
>> "A C programmer could create a trivial macro or function wrapper around
>> strcmp() to compare two strings, returning an appropriate truth value for
>> string equality/inequality. However, as this sort of macro/function would
>> add no benefits over the existing strcmp() implementation, such a
>> macro/function is rarely, if ever, written."
>>
>> #define streq(s,t) (!!strcmp(s,t))
> 
> Am I missing something? Surely you mean
> 
> #define streq(s, t) (!strcmp(s,t))

My bad. Sorry

> ? (Assuming you want it to return true (non-0) if the strings are
> equal.) (And I'd put some more ()s in there..., and I'd choose a
> different name, and...)
> 


-- 
Lew Pitcher
"In Skills, We Trust"
PGP public key available upon request

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

standard  error codes Thiago Adams <thiago.adams@gmail.com> - 2017-01-08 06:34 -0800
  Re: standard  error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-08 11:05 -0800
    Re: standard  error codes Thiago Adams <thiago.adams@gmail.com> - 2017-01-09 03:33 -0800
      Re: standard  error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-09 04:55 -0800
        Re: standard  error codes Keith Thompson <kst-u@mib.org> - 2017-01-09 09:06 -0800
          Re: standard  error codes Thiago Adams <thiago.adams@gmail.com> - 2017-01-09 09:52 -0800
            Re: standard error codes BartC <bc@freeuk.com> - 2017-01-09 21:50 +0000
              Re: standard error codes BartC <bc@freeuk.com> - 2017-01-09 22:36 +0000
                Re: standard error codes supercat@casperkitty.com - 2017-01-09 14:51 -0800
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-09 23:39 +0000
                Re: standard error codes supercat@casperkitty.com - 2017-01-09 15:51 -0800
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-09 16:08 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-09 18:51 -0800
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-10 02:02 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-10 07:34 -0800
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-10 01:39 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-10 09:07 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-10 09:59 -0800
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-10 12:02 -0800
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-10 12:53 -0800
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-10 13:03 -0800
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-10 15:41 -0800
                Re: standard error codes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-11 02:56 +0000
                Re: standard error codes supercat@casperkitty.com - 2017-01-11 07:42 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-10 12:59 -0800
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-10 18:14 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-10 12:12 -0800
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-10 20:35 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-10 13:00 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-11 08:16 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 18:25 +0000
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-11 19:09 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-11 12:03 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 20:10 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-11 12:19 -0800
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-11 20:31 +0000
                Re: standard error codes Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-01-11 15:32 -0500
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 20:48 +0000
                Re: standard error codes Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-01-11 15:58 -0500
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-11 13:01 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 21:05 +0000
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-11 21:08 +0000
                Re: standard error codes Gareth Owen <gwowen@gmail.com> - 2017-01-11 21:38 +0000
                Re: standard error codes BartC <bc@freeuk.com> - 2017-01-11 21:58 +0000
                Re: standard error codes David Brown <david.brown@hesbynett.no> - 2017-01-12 12:11 +0100
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-12 09:28 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-12 18:06 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-12 11:39 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-12 19:50 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-12 13:03 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-12 21:13 +0000
                Re: standard error codes <william@wilbur.25thandClement.com> - 2017-01-12 20:00 -0800
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-13 01:56 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-13 12:54 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-13 09:35 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-13 17:38 +0000
                Re: standard error codes James Kuyper <jameskuyper@verizon.net> - 2017-01-13 13:06 -0500
                Re: standard error codes raltbos@xs4all.nl (Richard Bos) - 2017-01-18 12:00 +0000
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-18 12:13 +0000
                Re: standard error codes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-12 16:43 -0800
                Re: standard error codes <william@wilbur.25thandClement.com> - 2017-01-12 19:34 -0800
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-13 09:27 -0800
                Re: standard error codes raltbos@xs4all.nl (Richard Bos) - 2017-01-12 19:33 +0000
                Re: standard error codes Keith Thompson <kst-u@mib.org> - 2017-01-12 12:10 -0800
                Re: standard error codes supercat@casperkitty.com - 2017-01-11 11:50 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 20:38 +0000
                Re: standard error codes jadill33@gmail.com - 2017-01-11 12:26 -0800
                Re: standard error codes Richard Heathfield <rjh@cpax.org.uk> - 2017-01-11 20:44 +0000
      Re: standard  error codes Keith Thompson <kst-u@mib.org> - 2017-01-09 09:03 -0800
  Re: standard  error codes supercat@casperkitty.com - 2017-01-08 11:40 -0800

csiph-web