Mail Archives: cygwin/1999/02/16/12:24:34
Consider a text file (CR/LF line endings). Read a line, save the
current position, seek to end-of-file, seek to the saved position,
read a line. The second read does not return the second line of
the file.
A shell script which tests the problem is included below:
---------------------------------------------------------------------
#!/bin/sh
#
# Test fseek bug
# On Cygwin 20.1, a file is not correctly repositioned after seeking to the
# end-of-file on a text file (CR/LF line endings).
cat > tfrepos.c << EoF
#include <stdio.h>
int main (int argc, char *argv[])
{
FILE *fp;
long int pos, size;
char line[200];
char *p;
fp = fopen (argv[1], "r");
p = fgets (line, 200, fp);
printf (" Line: %s", p);
pos = ftell (fp);
fseek (fp, 0L, SEEK_END);
fseek (fp, pos, SEEK_SET);
p = fgets (line, 200, fp);
printf (" Line: %s", p);
return 0;
}
EoF
# Run the test program with the c-program as input
gcc tfrepos.c -o tfrepos
./tfrepos tfrepos.c
# Clean up
rm -f tfrepos tfrepos.c
---------------------------------------------------------------------
Peter Kabal kabal AT ECE DOT McGill DOT CA
Dept. Electrical & Computer Eng.
McGill University
- Raw text -