[physfs] open for append & seek & write?

Vaclav Vanc vanc.vaclav at gmail.com
Sun Mar 30 11:12:04 EDT 2008


Hello Indy,
with PHYSFS_openWrite  seek is working, but unfortunately
PHYSFS_openWrite delete file contents at open (like fopen(x, "wb")).
So with PHYSFS_openWrite is in file.txt, after run of program 2 bytes
of NULL (that was seek) and "TEST" string...

PHYSFS_openAppend does not delete file contents, but it ALWAYS write
at the end of the file. Is it a bug or feature?



2008/3/30, Indy Sams <indy at driftsolutions.com>:
> Hello Vaclav,
>
>       I'd try PHYSFS_openWrite instead of PHYSFS_openAppend. I've
>       never tried it though, so I don't know if when you start
>       writing after you seek if it will overwrite what is there, or
>       add what you wrote and shift everything else down.
>
>       Also, I'm not sure if openWrite always forces the opened file
>       to be empty or not (like fopen(x, "wb")), in which case you'd
>       have to copy the original file's data into it as well.
>
>  Sunday, March 30, 2008, 9:25:03 AM, you wrote:
>
>  VV> X-POP-Combiner: Version 1.1/AMD64; host=mail.elit3.com; acct=indy%driftsolutions.com
>  VV> Return-path: <physfs-return-659-indy=driftsolutions.com at icculus.org>
>  VV> Envelope-to: indy at driftsolutions.com
>  VV> Delivery-date: Sun, 30 Mar 2008 08:27:30 -0500
>  VV> Received: from icculus.org ([67.106.77.212]:52315)
>  VV>         by dallas3.tx.ipxf.net with esmtps (TLSv1:AES256-SHA:256)
>  VV>         (Exim 4.68)
>  VV>         (envelope-from
>  VV> <physfs-return-659-indy=driftsolutions.com at icculus.org>)
>  VV>         id 1JfxZ9-0003DX-Rp
>  VV>         for indy at driftsolutions.com; Sun, 30 Mar 2008 08:27:30 -0500
>  VV> Received: (qmail 15175 invoked by alias); 30 Mar 2008 09:26:54 -0400
>  VV> Mailing-List: contact physfs-help at icculus.org; run by ezmlm
>  VV> Precedence: bulk
>  VV> X-No-Archive: yes
>  VV> List-Post: <mailto:physfs at icculus.org>
>  VV> List-Help: <mailto:physfs-help at icculus.org>
>  VV> List-Unsubscribe: <mailto:physfs-unsubscribe at icculus.org>
>  VV> List-Subscribe: <mailto:physfs-subscribe at icculus.org>
>  VV> Reply-To: physfs at icculus.org
>  VV> Delivered-To: mailing list physfs at icculus.org
>  VV> Received: (qmail 13137 invoked by uid 305); 30 Mar 2008 09:26:13 -0400
>  VV> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
>  VV>         d=gmail.com; s=beta;
>  VV>
>  VV> h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
>  VV>         bh=KG3GKGZERsQMlJNq99uwZd2kZeYsBHz400SidnJGCME=;
>  VV>
>  VV> b=k/WpN/VOBL9ZKYZzBvj83Ijgle42yb1HaC6lDRauPwZirbe4tXCT0Hi4EwVL4iV7HbrdnGIpaInbpA1nX7fTYZN98Lp0SPa/TwDlW3yV6JlbYftN/+iqAlruBoEDvYfcTKt+TjLzyeKef20Ma9B7jV2TRRoVraz6qU5Rt2IjtKg=
>  VV> DomainKey-Signature: a=rsa-sha1; c=nofws;
>  VV>         d=gmail.com; s=beta;
>  VV>
>  VV> h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
>  VV>
>  VV> b=W4P0/evYPbY1Ul6RzVznprSbX8hYdbbZpBkfmWQSzAjJt6Di6LiDyW1HCv1KF1wYN+18eKtCV1aU7iGgH3HQua9+5UYEFIfwr4M7n+qXHL2POUdZd1e3sLdjqvZLeW+O8F1pix3v4ueNZ0Ns4XxHIsMDw9n2JZCITQN/DT+ESlE=
>  VV> Message-ID:
>  VV> <b755b4c80803300625q299c981ai440916a3be782fdf at mail.gmail.com>
>  VV> Date: Sun, 30 Mar 2008 15:25:03 +0200
>  VV> From: "Vaclav Vanc" <vanc.vaclav at gmail.com>
>  VV> To: physfs at icculus.org
>  VV> MIME-Version: 1.0
>  VV> Content-Type: text/plain; charset=UTF-8
>  VV> Content-Transfer-Encoding: 7bit
>  VV> Content-Disposition: inline
>  VV> Subject: [physfs] open for append & seek & write?
>  VV> X-Spam-Status: No, score=-102.6
>  VV> X-Spam-Score: -1025
>  VV> X-Spam-Bar: ---------------------------------------------------
>  VV> X-Spam-Flag: NO
>  VV> X-Text-Classification: spam
>  VV> X-POPFile-Link: http://127.0.0.1:8080/jump_to_message?view=8846
>
>  VV> X-POP-Combiner: Version 1.1/AMD64; host=mail.elit3.com; acct=indy%driftsolutions.com
>  VV> Return-path: <physfs-return-659-indy=driftsolutions.com at icculus.org>
>  VV> Envelope-to: indy at driftsolutions.com
>  VV> Delivery-date: Sun, 30 Mar 2008 08:27:30 -0500
>  VV> Received: from icculus.org ([67.106.77.212]:52315)
>  VV>         by dallas3.tx.ipxf.net with esmtps (TLSv1:AES256-SHA:256)
>  VV>         (Exim 4.68)
>  VV>         (envelope-from
>  VV> <physfs-return-659-indy=driftsolutions.com at icculus.org>)
>  VV>         id 1JfxZ9-0003DX-Rp
>  VV>         for indy at driftsolutions.com; Sun, 30 Mar 2008 08:27:30 -0500
>  VV> Received: (qmail 15175 invoked by alias); 30 Mar 2008 09:26:54 -0400
>  VV> Mailing-List: contact physfs-help at icculus.org; run by ezmlm
>  VV> Precedence: bulk
>  VV> X-No-Archive: yes
>  VV> List-Post: <mailto:physfs at icculus.org>
>  VV> List-Help: <mailto:physfs-help at icculus.org>
>  VV> List-Unsubscribe: <mailto:physfs-unsubscribe at icculus.org>
>  VV> List-Subscribe: <mailto:physfs-subscribe at icculus.org>
>  VV> Reply-To: physfs at icculus.org
>  VV> Delivered-To: mailing list physfs at icculus.org
>  VV> Received: (qmail 13137 invoked by uid 305); 30 Mar 2008 09:26:13 -0400
>  VV> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
>  VV>         d=gmail.com; s=beta;
>  VV>
>  VV> h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
>  VV>         bh=KG3GKGZERsQMlJNq99uwZd2kZeYsBHz400SidnJGCME=;
>  VV>
>  VV> b=k/WpN/VOBL9ZKYZzBvj83Ijgle42yb1HaC6lDRauPwZirbe4tXCT0Hi4EwVL4iV7HbrdnGIpaInbpA1nX7fTYZN98Lp0SPa/TwDlW3yV6JlbYftN/+iqAlruBoEDvYfcTKt+TjLzyeKef20Ma9B7jV2TRRoVraz6qU5Rt2IjtKg=
>  VV> DomainKey-Signature: a=rsa-sha1; c=nofws;
>  VV>         d=gmail.com; s=beta;
>  VV>
>  VV> h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition;
>  VV>
>  VV> b=W4P0/evYPbY1Ul6RzVznprSbX8hYdbbZpBkfmWQSzAjJt6Di6LiDyW1HCv1KF1wYN+18eKtCV1aU7iGgH3HQua9+5UYEFIfwr4M7n+qXHL2POUdZd1e3sLdjqvZLeW+O8F1pix3v4ueNZ0Ns4XxHIsMDw9n2JZCITQN/DT+ESlE=
>  VV> Message-ID:
>  VV> <b755b4c80803300625q299c981ai440916a3be782fdf at mail.gmail.com>
>  VV> Date: Sun, 30 Mar 2008 15:25:03 +0200
>  VV> From: "Vaclav Vanc" <vanc.vaclav at gmail.com>
>  VV> To: physfs at icculus.org
>  VV> MIME-Version: 1.0
>  VV> Content-Type: text/plain; charset=UTF-8
>  VV> Content-Transfer-Encoding: 7bit
>  VV> Content-Disposition: inline
>  VV> Subject: [physfs] open for append & seek & write?
>  VV> X-Spam-Status: No, score=-102.6
>  VV> X-Spam-Score: -1025
>  VV> X-Spam-Bar: ---------------------------------------------------
>  VV> X-Spam-Flag: NO
>  VV> X-Text-Classification: spam
>  VV> X-POPFile-Link: http://127.0.0.1:8080/jump_to_message?view=8846
>
>
>
>  VV> Hi  is it possible, to open existing file, seek in the middle and
>  VV> write something?
>  VV> Here is my code...
>
>  VV> #include <stdio.h>
>  VV> #include "physfs.h"
>
>  VV> int main(int argc, char *argv[])
>  VV> {
>  VV> char string[]="TEST";
>
>  VV> PHYSFS_init(argv[0]);
>  VV> PHYSFS_permitSymbolicLinks( 1 );
>  VV> PHYSFS_setWriteDir("./");
>  VV> PHYSFS_addToSearchPath( "./", 0 );
>
>  VV> PHYSFS_file *file = PHYSFS_openAppend("file.txt");
>
>  VV> PHYSFS_seek(file, 2);
>  VV> PHYSFS_write(file,  string, 1, 4);
>
>  VV> PHYSFS_close(file);
>  VV> return EXIT_SUCCESS;
>  VV> }
>
>  VV> It should open existing file,  seek to 2th byte from start and write 4
>  VV> bytes. Unfortunately these 4 bytes are written to the end of the file.
>  VV> What I am doing wrong?
>
>  VV> Thanks.
>
>  VV> ---
>  VV> To unsubscribe, send a blank email to physfs-unsubscribe at icculus.org
>  VV> Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4
>
>
>
>  Best regards,
>   Indy Sams
>   mailto:indy at driftsolutions.com
>
>   P.S. This is what part of the alphabet would look like if Q & R were eliminated.
>
>
>  ---
>  To unsubscribe, send a blank email to physfs-unsubscribe at icculus.org
>  Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4
>
>
>



More information about the physfs mailing list