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


Groups > comp.lang.c > #14750

Re: code snippet

From Rui Maciel <rui.maciel@gmail.com>
Newsgroups comp.lang.c
Subject Re: code snippet
Date 2011-12-19 12:33 +0000
Organization Aioe.org NNTP Server
Message-ID <jcnau9$lld$1@speranza.aioe.org> (permalink)
References <4eee988e$0$16043$bbae4d71@news.suddenlink.net> <358te7hacn7hb74jdse2phqusbsia2loj6@4ax.com> <4eeea69e$0$13642$bbae4d71@news.suddenlink.net>

Show all headers | View raw


Bill Cunningham wrote:

> Geoff wrote:
> 
>> Apart from the missing closing brace?
> 
>     Oh...Yeah.
> 
>> The compiler is expecting your function to return a pointer. You are
>> not doing that. Furthermore, not all paths through the function as
>> shown return a value.
> 
>     It looks to me that they all return a 1 on error and I guess I need to
> fix that. I would need to set a pointer to a value of 1. Let's see...
> 
> int *error=1;
> 
> And in the functions changed to return error;
> Sound good.
> 
> I forget with this new bash I have been working with how to redirect to
> stderr. Maybe this will undo the errors.
> 
> Bill

Do you have the freedom to redefine the get() function?  If so, I would 
suggest that you defined it so that it returned a meaningful result instead 
of a pointer.  For example, you could define an enum which encompasses all 
possible error codes and then rely on that enum definition to return error 
codes which are actually meaningful.  By doing so, your code would become a 
bit easier to read and understand (i.e., no more magic numbers), not to 
mention a bit more structured.

For example:

<code>
enum ErrorCodes
{
    ERR_OK = 0,
    ERR_FOPEN_ERROR,
    //...
    ERR_UNKNOWN	// only returned in SNAFU cases
}

enum ErrorCodes get(void *pv)
{    
    double price;
    long int date;
    unsigned int number;
    int check;
    FILE *fp;
    if ((fp = fopen("num", "r")) == NULL) {
        perror("fopen error");
        return ERR_FOPEN_ERROR;
    }
    if ((check = fscanf(fp, "%u %f %l", &number, &price, &date)) == EOF) {
        printf("%d\n", ferror(fp));
        clearerr(fp);
        return ERR_FOPEN_ERROR;
    }

    //...

    return ERR_UNKNOWN;    // in case of something going horribly wrong
}


int main(void)
{
    // snip

    enum ErrorCodes error;
    error = get(foo);

    if(error != ERR_OK)
    {
        switch(error)    // this could also be a predefined function
        {
            // handle any potential error in here
        }
    }

    // snip
    return 0;
}

</code>


Hope this helps,
Rui Maciel

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


Thread

code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-18 20:51 -0500
  Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-18 18:29 -0800
    Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-18 21:51 -0500
      Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-18 22:24 -0500
        Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-18 19:53 -0800
          Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-18 23:32 -0500
            Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-18 20:57 -0800
              Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 00:01 -0500
                Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-18 21:13 -0800
                Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 16:42 -0500
      Re: code snippet Keith Thompson <kst-u@mib.org> - 2011-12-18 20:14 -0800
        Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-18 23:27 -0500
      Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-19 12:33 +0000
        Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 16:33 -0500
          Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-20 00:20 +0000
            Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 19:46 -0500
              Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-20 01:14 +0000
                Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-20 15:51 -0500
                Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-21 14:11 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-21 07:03 -0800
                Re: code snippet Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-21 21:41 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-21 16:35 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 01:03 +0000
                Re: code snippet Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-22 03:19 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 07:11 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 16:59 +0000
                Re: code snippet "io_x" <a@b.c.invalid> - 2011-12-22 18:38 +0100
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 10:40 -0800
                Re: code snippet Markus Wichmann <nullplan@gmx.net> - 2011-12-22 19:12 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-12-28 03:50 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2011-12-28 17:06 +0100
                Re: code snippet "io_x" <a@b.c.invalid> - 2012-01-01 20:04 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-01 12:38 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2012-01-02 10:14 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-03 04:56 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2012-01-03 18:26 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-04 00:09 -0800
                Re: code snippet Ian Collins <ian-news@hotmail.com> - 2012-01-04 21:53 +1300
                Re: code snippet "io_x" <a@b.c.invalid> - 2012-01-04 16:14 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-01 12:28 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2012-01-02 10:18 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-03 04:56 -0800
                Re: code snippet "BartC" <bc@freeuk.com> - 2011-12-22 18:05 +0000
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 18:14 +0000
                Re: code snippet superpollo <superpollo@tznvy.pbz> - 2011-12-22 20:00 +0100
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 19:08 +0000
                Re: code snippet superpollo <superpollo@tznvy.pbz> - 2011-12-22 22:43 +0100
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 21:57 +0000
                Re: code snippet BruceS <bruces42@hotmail.com> - 2011-12-23 16:26 -0800
                Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-22 19:21 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 11:33 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2011-12-23 09:10 +0100
                Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-23 14:43 +0000
                Re: code snippet Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-23 17:14 +0000
                Re: code snippet Keith Thompson <kst-u@mib.org> - 2011-12-23 12:10 -0800
                Re: code snippet Walter Banks <walter@bytecraft.com> - 2012-01-03 14:24 -0500
                Re: code snippet Kaz Kylheku <kaz@kylheku.com> - 2012-01-03 19:58 +0000
                Re: code snippet Walter Banks <walter@bytecraft.com> - 2012-01-03 16:15 -0500
                Re: code snippet blp@cs.stanford.edu (Ben Pfaff) - 2012-01-03 13:26 -0800
                Re: code snippet Kaz Kylheku <kaz@kylheku.com> - 2012-01-03 22:04 +0000
                Re: code snippet Ian Collins <ian-news@hotmail.com> - 2012-01-04 15:44 +1300
                Re: code snippet "BartC" <bc@freeuk.com> - 2012-01-04 23:34 +0000
                Re: code snippet James Harris <james.harris.1@googlemail.com> - 2012-01-04 15:57 -0800
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2012-01-05 23:34 -0800
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-06 00:40 -0800
                Re: code snippet Kleuske <kleuske@nowhere.net> - 2012-01-06 10:33 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2012-01-06 04:30 -0800
                Re: code snippet Ian Collins <ian-news@hotmail.com> - 2012-01-04 15:37 +1300
                Re: code snippet Kaz Kylheku <kaz@kylheku.com> - 2012-01-04 03:37 +0000
                Re: code snippet Ian Collins <ian-news@hotmail.com> - 2012-01-04 20:23 +1300
                Re: code snippet jacob navia <jacob@spamsink.net> - 2011-12-22 18:26 +0100
                Re: code snippet Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-22 19:34 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 11:57 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 20:18 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 12:52 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 20:37 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 13:27 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 21:57 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 14:09 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 21:57 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-23 04:01 -0800
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-22 14:24 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-22 21:57 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2012-01-01 23:06 -0800
                Re: code snippet Hans Vlems <hvlems@freenet.de> - 2011-12-22 23:35 -0800
                Re: code snippet "BartC" <bc@freeuk.com> - 2011-12-23 12:26 +0000
                Re: code snippet jacob navia <jacob@spamsink.net> - 2011-12-23 18:32 +0100
                Re: code snippet Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-12-28 04:04 -0800
                Re: code snippet "io_x" <a@b.c.invalid> - 2011-12-23 09:10 +0100
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-25 11:13 -0800
                Re: code snippet Seebs <usenet-nospam@seebs.net> - 2011-12-25 19:31 +0000
                Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-26 21:53 +0000
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-26 16:10 -0800
                Re: code snippet Keith Thompson <kst-u@mib.org> - 2011-12-26 18:11 -0800
                Re: code snippet 88888 Dihedral <dihedral88888@googlemail.com> - 2011-12-26 23:56 -0800
                Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-20 15:57 -0500
                Re: code snippet Rui Maciel <rui.maciel@gmail.com> - 2011-12-21 12:39 +0000
                Re: code snippet Bill Reid <hormelfree@gmail.com> - 2011-12-22 15:29 -0800
          Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-19 19:19 -0800
            Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-20 13:51 -0500
              Re: code snippet Geoff <geoff@invalid.invalid> - 2011-12-20 11:08 -0800
  Re: code snippet Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-19 11:37 +0000
    Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 16:38 -0500
      Re: code snippet "Morris Keesan" <mkeesan@post.harvard.edu> - 2011-12-19 17:02 -0500
    Re: code snippet "Bill Cunningham" <nospam@nspam.invalid> - 2011-12-19 17:21 -0500
      Re: code snippet John Gordon <gordon@panix.com> - 2011-12-19 22:35 +0000

csiph-web