2G file size limit

Does anyone know if there is a way around the 2G file limit on Qnx4.25 ?

I can’t create a single file greater than 2gig.

-Glenn

Glenn Sherman <gsherman@remove_this.m20.net> wrote:

Does anyone know if there is a way around the 2G file limit on Qnx4.25 ?
I can’t create a single file greater than 2gig.

No, Fsys ondisk format is 32-bit, QNX4 libc is 32-bit (and don’t think
a compiler with native 64-bit arithmetic was officially released either).

You could write an IO manager which provides access using underlying
2GB files, but you still run into the 32-bit limits in the client
(standard IO* messages are 32-bit, stat size fields 32-bit, lseek
with 32-bit offsets, etc - you’d also need to supply your own API).

John Garvey <jgarvey@qnx.com> wrote:
JG > Glenn Sherman <gsherman@remove_this.m20.net> wrote:

Does anyone know if there is a way around the 2G file limit on Qnx4.25 ?
I can’t create a single file greater than 2gig.

JG > No, Fsys ondisk format is 32-bit, QNX4 libc is 32-bit (and don’t think
JG > a compiler with native 64-bit arithmetic was officially released either).

JG > You could write an IO manager which provides access using underlying
JG > 2GB files, but you still run into the 32-bit limits in the client
JG > (standard IO* messages are 32-bit, stat size fields 32-bit, lseek
JG > with 32-bit offsets, etc - you’d also need to supply your own API).

If you are willing to write your own API you can allocate a partition
as large as you want and use block_read() and block_write() to do your
low level disk IO.

Calculate a block number and a block offset from an address that you
pass to your API.

I did this long ago when I wanted to write a cacheing system for one
particular file. It’s easier than it sounds.


Bill Caroselli – Q-TPS Consulting
qtps@earthlink.net