I would like to use file stream functions (e.g., "ftell") on an existing file I opened using CreateFile (which returns a HANDLE). I searched SO and elsewhere with no joy. I want to do something like this:
HANDLE h;
FILE *f;
int pos;
h = CreateFile( "MYFILE.TXT", ... )
f = *convert*( h, &f ); // the function I'm looking for
pos = ftell( f );
Is there a way to get a FILE stream from a file handle?
CodePudding user response:
Use _open_osfhandle() to create a C-style file descriptor from a Win32 HANDLE, and then use _fdopen() to create a FILE* from the file descriptor.
CodePudding user response:
Converting a windows HANDLE won't work because it's specific for windows only, whereas FILE is cross-platform.
Try instead to get an alternative function to ftell in winapi like here.
