This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Bug 1001168] New: ftell returns incorrect position on files openedfor append
- From: bugzilla-daemon at bugs dot ecos dot sourceware dot org
- To: unassigned at bugs dot ecos dot sourceware dot org
- Date: Mon, 7 Mar 2011 10:52:51 +0000
- Subject: [Bug 1001168] New: ftell returns incorrect position on files openedfor append
- Auto-submitted: auto-generated
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.