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


Groups > comp.lang.c > #101460

Re: standard error codes

From Richard Heathfield <rjh@cpax.org.uk>
Newsgroups comp.lang.c
Subject Re: standard error codes
Date 2017-01-11 20:48 +0000
Organization Fix this later
Message-ID <o565ka$kf7$1@dont-email.me> (permalink)
References (14 earlier) <ln7f62r7xp.fsf@kst-u.example.com> <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>

Show all headers | View raw


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))

? (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...)

-- 
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within

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