#include "PortableTruncate.h"
int PortableTruncate_justHereToAvoidRanlibWarning(void) { return 0; }
#ifdef _WIN32
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
// Win32 truncate by Mike Austin
int truncate(const char *path, long length)
{
HANDLE file = CreateFile(path, GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
FILE_SHARE_WRITE | FILE_SHARE_READ, NULL);
if (file == INVALID_HANDLE_VALUE)
{
return -1;
}
if (SetFilePointer(file, length, NULL, FILE_BEGIN) == 0xFFFFFFFF || !SetEndOfFile(file))
{
CloseHandle(file);
return -1;
}
CloseHandle(file);
return 0;
}
#endif
#if defined(__SYMBIAN32__)
int truncate(const char* path, long length)
{
// TODO: Implement for Symbian
return -1;
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1