/* Test of POSIX compatible fflush() function.
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <config.h>
+/* None of the files accessed by this test are large, so disable the
+ ftell link warning if we are not using the gnulib ftell module. */
+#define _GL_NO_LARGE_FILES
#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fflush, int, (FILE *));
+
#include <unistd.h>
int
if (!f || 0 > fd || fread (buffer, 1, 5, f) != 5)
{
fputs ("Failed initial read of sample file.\n", stderr);
- fclose (f);
+ if (f)
+ fclose (f);
unlink ("test-fflush.txt");
return 1;
}
}
#endif
/* POSIX requires fflush-fseek to set file offset of fd. */
- if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0)
+ if (fflush (f) != 0 || fseeko (f, 0, SEEK_CUR) != 0)
{
fputs ("Failed to flush-fseek sample file.\n", stderr);
fclose (f);
if (lseek (fd, 0, SEEK_CUR) != 5)
{
fprintf (stderr, "File offset is wrong after fseek: %ld.\n",
- (long) lseek (fd, 0, SEEK_CUR));
+ (long) lseek (fd, 0, SEEK_CUR));
fclose (f);
unlink ("test-fflush.txt");
return 1;
if (ftell (f) != 5)
{
fprintf (stderr, "ftell result is wrong after fseek: %ld.\n",
- (long) ftell (f));
+ (long) ftell (f));
fclose (f);
unlink ("test-fflush.txt");
return 1;
if (lseek (fd, 0, SEEK_CUR) != 6)
{
fprintf (stderr, "File offset is wrong after fseeko: %ld.\n",
- (long) lseek (fd, 0, SEEK_CUR));
+ (long) lseek (fd, 0, SEEK_CUR));
fclose (f);
unlink ("test-fflush.txt");
return 1;
if (ftell (f) != 6)
{
fprintf (stderr, "ftell result is wrong after fseeko: %ld.\n",
- (long) ftell (f));
+ (long) ftell (f));
fclose (f);
unlink ("test-fflush.txt");
return 1;