glibc/libio/bug-mmap-fflush.c
Ulrich Drepper 934b77ac65 Update.
2002-08-27  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/arm/Dist: Add bits/link.h.

	* sunrpc/Makefile: Distribute thrsvc.

	* stdio-common/Makefile: Remove more left-overs from old stdio.

	* include/linewrap.h: Removed.

	* libio/bug-mmap-fflush.c: Rewrite to not touch source directory.

	* intl/Makefile (distribute): Add plural-eval.c.

	* stdio-common/Makefile (headers): Remove bits/stdio_lim.h.  This
	file isn't distributed.  Add special rules to install bits/stdio_lim.h.

	* Make-dist: Remove traces of old stdio.
	* Makeconfig: Likewise.

	* locale/Makefile (localedef-aux): New variable.  Only md5
	assigned to it.  These files are not ddistributed in this directory.

	* sysdeps/unix/sysv/linux/s390/Dist: Add sys/procfs.h.
	* sysdeps/unix/sysv/linux/s390/s390-64/Dist: Remove sys/procfs.h.
	* sysdeps/unix/sysv/linux/s390/s390-32/Dist: Likewise.

	* sysdeps/unix/sysv/linux/Dist: Remove sys/sendfile.h.
2002-08-27 12:10:11 +00:00

54 lines
1,011 B
C

/* Test for bug in fflush synchronization behavior. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static char *fname;
static void prepare (void);
#define PREPARE(argc, argv) prepare ()
#define TEST_FUNCTION do_test ()
static int do_test (void);
#include "../test-skeleton.c"
static void
prepare (void)
{
int fd = create_temp_file ("bug-mmap-fflush.", &fname);
if (fd == -1)
exit (3);
/* We don't need the descriptor. */
close (fd);
}
static int
do_test (void)
{
FILE *f;
off_t o;
char buffer[1024];
snprintf (buffer, sizeof (buffer), "echo 'From foo@bar.com' > %s", fname);
system (buffer);
f = fopen (fname, "r");
fseek (f, 0, SEEK_END);
o = ftello (f);
fseek (f, 0, SEEK_SET);
fflush (f);
snprintf (buffer, sizeof (buffer), "echo 'From bar@baz.edu' >> %s", fname);
system (buffer);
fseek (f, o, SEEK_SET);
if (fgets (buffer, 1024, f) == NULL)
exit (1);
if (strncmp (buffer, "From ", 5) != 0)
exit (1);
fclose (f);
exit (0);
}