This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos 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]

[Bug 1001168] New: ftell returns incorrect position on files openedfor append


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001168

           Summary: ftell returns incorrect position on files opened for
                    append
           Product: eCos
           Version: CVS
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: low
         Component: C library
        AssignedTo: unassigned@bugs.ecos.sourceware.org
        ReportedBy: stano@meduna.org
                CC: ecos-bugs@ecos.sourceware.org
             Class: Advice Request


Created an attachment (id=1163)
 --> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1163)
Do a SEEK_CUR seek if the mode is append

If a file is opened for append, the ftell returns the number of characters
written after the original end of the file and not the absolute position in the
file. I.e. the following code:

int main( int argc, char **argv )
{
  FILE *fp;
  long pos;

  mount( "/dev/flash/fis/fs", "/fs", "jffs2" );
  unlink("/fs/test");
  fp = fopen("/fs/test", "w");
  fprintf(fp, "One two three");
  fclose(fp);
  fp = fopen("/fs/test", "a");
  fprintf(fp, "Four");
  pos = ftell(fp);
  fclose(fp);

  fprintf(stderr, "Position: %ld\n", pos);

  umount( "/fs" );
}

prints 4.

The attached patch solves the problem; however, I am not that familiar with the
stdio infrastructure in eCos, so please review before applying.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


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