/* ftruncate emulations that work on some System V's.
This file is in the public domain. */
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include <config.h>
+
+/* Specification. */
+#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#ifdef F_CHSIZE
int
-ftruncate (fd, length)
- int fd;
- off_t length;
+ftruncate (int fd, off_t length)
{
return fcntl (fd, F_CHSIZE, length);
}
# include <sys/stat.h>
# include <errno.h>
-# if HAVE_UNISTD_H
-# include <unistd.h>
-# endif
int
-ftruncate (fd, length)
- int fd;
- off_t length;
+ftruncate (int fd, off_t length)
{
struct flock fl;
struct stat filebuf;
}
# else /* not F_CHSIZE nor F_FREESP */
-# if HAVE_CHSIZE
+# if HAVE_CHSIZE /* native Windows, e.g. mingw */
int
-ftruncate (fd, length)
- int fd;
- off_t length;
+ftruncate (int fd, off_t length)
{
return chsize (fd, length);
}
# else /* not F_CHSIZE nor F_FREESP nor HAVE_CHSIZE */
# include <errno.h>
-# ifndef errno
-extern int errno;
-# endif
int
-ftruncate (fd, length)
- int fd;
- off_t length;
+ftruncate (int fd, off_t length)
{
errno = EIO;
return -1;