This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fopen with "a+" does not respect setting file read position to start of file


We hit a problem in a code, and narrowed it down to a test case that does :

  while (cnt) {
    f=fopen(host_file, "a+");
    if (!f)
      perror("dup_host_file: Could not open hostfile");
    /* rewind(f); */
    while (cnt) {
      int ret=fscanf(f, "%s", line);
      if (ret != EOF) {
	  fprintf(f, "%s\n", line);
	  cnt--;
	  dup++;
	}
    }
    fclose(f);

In earlier versions of cygwin we have, this works fine, however in the recently installed 
versions, it no longer works. It seems that fopen(host_file, "a+") is NOT positioning the
read position at the start of the file as it should. Adding an explicit rewind(f) is a 
work around.

Gavin


cygcheck output attached.

Attachment: cygcheck.out
Description: cygcheck.out

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]