I am trying to find a cross-platform method to delete X
bytes from the end of a file.
Currently I have found:
Platform specific solutio
The Boost.Filesystem library (version 1.44 and above) provides a resize_file function.
How do you think cross platform functions work? Just make your own function like this:
int truncate(int fd, long size)
{
#ifdef _WIN32 || _WIN64
return _chsize(fd, size);
#else
#ifdef POSIX
return ftruncate(fd, size);
#else
// code for other OSes
#endif
#endif
}
There is no such thing in the Standard library. They support streams- but streams don't have ends, files happen to have ends- at the current time.
All you can do is write a cross-platform wrapper on the function.