
|
[openbeos]
||
[Date Prev]
[07-2004 Date Index]
[Date Next]
||
[Thread Prev]
[07-2004 Thread Index]
[Thread Next]
[openbeos] Re: Large File Woes
- From: Tyler Dauwalder <tyler@xxxxxxxxxxxxx>
- To: openbeos@xxxxxxxxxxxxx
- Date: Mon, 05 Jul 2004 14:55:45 -0700
Not sure, but makeudfimage is using BFile, which ought not be broken.
-Tyler
On 2004-07-05 at 14:47:22 [-0700], François Revol wrote:
> Does cat use the FILE* funcs ?
> I noticed in R5 one of them was broken:
> (from my PearPC port):
>
> FileOfs sys_ftell(SYS_FILE *file)
> {
> fpos_t pos;
> int err;
>
> // BeOS *is* 64 bits :p
> // ftell and fseek use long !! whoever invented the buffered io stuff
> should be
> slapped :^)
> // _fseek does work, but not _ftell... use _fgetpos
>
> err = fgetpos((FILE *)file, &pos);
> if (err < 0)
> return err;
> return pos;
> }
>
> Maybe cat uses it and borks?
>
> François.
>
> Selon Tyler Dauwalder <tyler@xxxxxxxxxxxxx>:
>
> > I've been working on large image support for UDF, and I've run into an
> > interesting problem. I'm trying to make a udf image of my home directory,
> > which is 5 or 6 GB large. I've done this before and created images about
> > 4GB large, but with my recent attempts, I'm getting B_DEVICE_FULL errors
> > from the operating system when I get to about 1.25GB. The device is in
> > fact, however, not full.
> >
> > I then created a test program which just writes a simple string of data
> > over and over to a given file using either open()/write() or
> > BFile()/BFile::Write(), and both versions successfully create images
> > larger
> > than 1.25GB.
> >
> > The really interesting part comes when I try to append data to the end of
> > these large files. In the listing below, home.udf is the udf image file I
> > was attempting to create with makeudfimage, bfile.udf is the random-data
> > file created via BFile, and open.udf is the random-data file created via
> > open()/write(). As you can see, I can append data to the two random-data
> > files (I killed the cat with ^C after a few seconds), but attempting to
> > append data to home.udf craps out with a B_DEVICE_FULL error (despite the
> > fact I have over 1GB free on the drive, still).
> >
> > --------------------------------------------------------------
> > /boot $ ll
> > total 5639371
> > drwxr-xr-x 1 baron users 4096 Jul 5 13:08 apps
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 beos
> > -rws--sr-- 1 baron users 1615000000 Jul 5 14:16 bfile.udf
> > drwxr-xr-x 1 baron users 2048 Jan 19 19:20 biggg
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 demos
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 develop
> > drwxr-xr-x 1 baron users 5120 Jul 5 14:13 home
> > -rw-r--r-- 1 baron users 1343551488 Jul 5 13:59 home.udf
> > -r-S--Sr-- 1 baron users 2816141120 Jul 5 13:59 open.udf
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 optional
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 preferences
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 var
> > /boot $ cat ~/Desktop/desktop.udf >> ./bfile.udf
> >
> > /boot $ cat ~/Desktop/desktop.udf >> ./open.udf
> >
> > /boot $ cat ~/Desktop/desktop.udf >> ./home.udf
> > /bin/cat: write error: No space left on device
> > /boot $ cat ~/Desktop/desktop.udf >> ./open.udf
> >
> > /boot $ ll
> > total 5146677
> > drwxr-xr-x 1 baron users 4096 Jul 5 13:08 apps
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 beos
> > -rws--sr-- 1 baron users 1621094848 Jul 5 14:16 bfile.udf
> > drwxr-xr-x 1 baron users 2048 Jan 19 19:20 biggg
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 demos
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 develop
> > drwxr-xr-x 1 baron users 5120 Jul 5 14:13 home
> > -rw-r--r-- 1 baron users 1343551488 Jul 5 13:59 home.udf
> > -r-S--Sr-- 1 baron users 2827151168 Jul 5 14:17 open.udf
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 optional
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 preferences
> > drwxr-xr-x 1 baron users 2048 Aug 24 2003 var
> > /boot $
> >
> > ----------------------------------------------------------------
> >
> > Any ideas what the problem could be?
> >
> > -Tyler
> >
>
|

|