RE: C question (linux)
- Posted by Matt Lewis <matthewwalkerlewis at yahoo.com> Dec 11, 2003
- 533 views
Paul wrote: > > int file_open(char *name, int mode) > { > > // return open(name, mode); > > return fopen(name, "r"); > } > > Would return the following when compiled: > > warning: return makes integer from pointer without a cast > > > This is driving me absolutely mad! I'm attempting to adjust the > source of a program I didn't write. For whatever reason, the old > open() call is returning an invalid file descriptor (134758848 to > be exact) so I am trying to change it from open() to fopen(). The > files passed through this routine are all read only types, so there > is no reason for mode to ever be anything but 0 ("r") so I figured > just change the ,mode) to a "r" Rather than changing the return type of your function (as many have suggested), why not just cast to an integer? It you change the return type, you'll only generate lots of other errors wherever the function is called, because the calls will all expect an integer. So change return fopen(name, "r"); to return (int) fopen(name, "r"); Matt Lewis