realbasic-plugins
[Top] [All Lists]

Re: Double-buffering read/write to files

To: REALbasic Plugins <realbasic-plugins at lists dot realsoftware dot com>
Subject: Re: Double-buffering read/write to files
From: Jonathan Johnson <jonj at realsoftware dot com>
Date: Mon, 11 Dec 2006 16:58:47 -0600
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-plugins at lists dot realsoftware dot com
References: <557C772B-523C-457F-9A99-D5E7A0628387 at elfdata dot com> <60300C4A-3D6E-489F-8BAB-AC98685A9DBE at elfdata dot com> <457DBEFE dot 7060808 at Club-Internet dot fr> <E2F791C5-95CD-4FC7-8C40-4AFC38C212C0 at elfdata dot com> <457DC9D0 dot 7010704 at Club-Internet dot fr> <96E6DA1D-9A13-4976-B4FA-B070DCF75856 at elfdata dot com>

On Dec 11, 2006, at 4:04 PM, Theodore H. Smith wrote:


On 11 Dec 2006, at 21:12, Menneteau wrote:

Theodore H. Smith wrote:

On 11 Dec 2006, at 20:26, Menneteau wrote:

Thanks Mennetau, nice answer.

One more though. What is the difference between fopen and open?

Why is there an fopen call when open seems to do it all, and even better? Is fopen better buffered, or what?

fopen is a higher level call that gives you access to higher level calls such as fgets/fgetws (get string/wstrinf from afile) that you don"t get with read.

Anyhow, for my case, I don't want any buffering.

Do you have any idea how I can ask the OS what is it's preferred file I/O read/write size?


perhaps with sysctl. For example, you can get the software page size and any I/O operation is a multiple of that value

Unfortunately, that just tells me 4096, which to be honest, is a kind of sucky buffer size ;)

It's one page, which sounds like a pretty good size to avoid hitting multiple page boundaries :)

-Jon


--
Jonathan Johnson
jonj at realsoftware dot com
REAL Software, Inc.


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>


<Prev in Thread] Current Thread [Next in Thread>