I want to truncate the file something like setsizeof() with FILE * I'm developing vs 2003 windows
#include <unistd.h> there's no such lib
how can I do it freopen() truncates all the data vut doesn't write- getting EINVAL error some help?????
I want to truncate the file something like setsizeof() with FILE * I'm developing vs 2003 windows
#include <unistd.h> there's no such lib
how can I do it freopen() truncates all the data vut doesn't write- getting EINVAL error some help?????
There are a number (roughly 20) of header files in the C standard and unistd is not one of them (it's a POSIX/UNIX95/UNIX98 header). So there's no requirement for a vendor to provide it. Neither C89 nor C99 have unistd as one the the mandated header files.
The easiest way to truncate a file is to reopen it in write mode (assuming you have the file name).
fclose (fh);
fh = fopen ("file_name", "w");
If all you have is the file handle, you need to use freopen(). You will only get EINVAL if the mode is incorrect. You cannot change the mode except accoording to the following table:
r -> r
w a -> a w
r+ w+ a+ -> any mode
See man freopen for further details.