To give you more context, this is what we are doing with storable files. We write some metadata in human readable form before the actual storable data in the file. When we retrieve a storable file, we first look at the first few bytes. (a) If we figure out that it's metadata, we either read it or skip it using FILE.go to jump to the location in the file where the actual storable data is. (b) If the first bytes that we read are not metadata, then we call FILE.go (0) before trying to read the actual storable data. Case (b) could be easily replaced by just closing and re-opening the file. Case (a) would be more problematic if FILE.go would not let us skip the metadata and jump directly to the location of the actual storable data. Can we use something else than fseek to skip the metadata? Would lseek work? Or should we just close and reopen the file and then call `read' with the number of metadata characters we wand to skip so that the file pointer is now at the location of the storable data? What was Microsoft do in fseek to update the file pointer before changing its implementation to just call fseeki64? Was it calling another function that we could use to move the file pointer? -- Eric Bezault