RE: C question (linux)

new topic     » goto parent     » topic index » view thread      » older message » newer message

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

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu