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
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