Connecting Tech Pros Worldwide Help | Site Map

portable fmemopen

 
LinkBack Thread Tools Search this Thread
  #1  
Old November 15th, 2006, 05:55 PM
yancheng.cheok@gmail.com
Guest
 
Posts: n/a
Default portable fmemopen

i have a vendor function, which need to take into FILE* as function
arguement.

vendor_function_read_and_process(FILE* f)

however, by reading from disk file during run-time, we get performance
penalty.

hence, instead of having f pointing to a disk file, we would like to
have f mapped to a memory location.

fmemopen is what we are looking for. however, since we are developing
is MSVC windows platform, i was wondering whether there is any portable
library to do so?

thank you.


  #2  
Old November 15th, 2006, 06:15 PM
santosh
Guest
 
Posts: n/a
Default Re: portable fmemopen

yancheng.cheok@gmail.com wrote:
Quote:
i have a vendor function, which need to take into FILE* as function
arguement.
>
vendor_function_read_and_process(FILE* f)
>
however, by reading from disk file during run-time, we get performance
penalty.
Who says that f has to control a disk file? Is it under your control or
not?
Quote:
hence, instead of having f pointing to a disk file, we would like to
have f mapped to a memory location.
f is just a pointer to an object of type FILE. That too, despite it's
name, is probably a simple structure object. f will control a disk
file, only if you make it do so by a call to fopen() or similar. If you
want to map that disk file, whatever it is, to memory then memory
mapped files is the first idea.
Quote:
fmemopen is what we are looking for. however, since we are developing
is MSVC windows platform, i was wondering whether there is any portable
library to do so?
I suspect, memory mapping the file using the native Windows API would
be sufficient unless the requirements are special. Even then you'll not
be able to avoid the overall penalty incurred in reading it ina
piecemeal fashion from the hard disk.

Anyway, standard C has no provisions for what you're seeking. Ask in a
Microsoft newsgroup like comp.os.ms-windows.programming.

  #3  
Old November 15th, 2006, 08:35 PM
Malcolm
Guest
 
Posts: n/a
Default Re: portable fmemopen




<yancheng.cheok@gmail.comwrote in message
news:1163618273.541831.8110@m7g2000cwm.googlegroup s.com...
Quote:
>i have a vendor function, which need to take into FILE* as function
arguement.
>
vendor_function_read_and_process(FILE* f)
>
however, by reading from disk file during run-time, we get performance
penalty.
>
hence, instead of having f pointing to a disk file, we would like to
have f mapped to a memory location.
>
fmemopen is what we are looking for. however, since we are developing
is MSVC windows platform, i was wondering whether there is any portable
library to do so?
>
Sadly, this is a major weakness in the standard. There is no way of creating
memory files or indeed and user-defined type of stream.
--
www.personal.leeds.ac.uk/~bgy1mm
freeware games to download.


  #4  
Old November 15th, 2006, 09:05 PM
Keith Thompson
Guest
 
Posts: n/a
Default Re: portable fmemopen

"Malcolm" <regniztar@btinternet.comwrites:
Quote:
<yancheng.cheok@gmail.comwrote in message
news:1163618273.541831.8110@m7g2000cwm.googlegroup s.com...
[...]
Quote:
Quote:
>fmemopen is what we are looking for. however, since we are developing
>is MSVC windows platform, i was wondering whether there is any portable
>library to do so?
>>
Sadly, this is a major weakness in the standard. There is no way of creating
memory files or indeed and user-defined type of stream.
There's no standard way of specifying that a given file exists in
memory. But then again, there's no standard way of specifying that a
given file exists on disk. The interpretation of a file name is
entirely system-specific.

An implementation could easily specify a particular form of file name
that refers to in-memory files; then all the machinery that normally
deals with disk files should just work. I wonder why more
implementations don't do this.

(Some implementations can implement in-memory file systems, but
there's no good way to tell that a given file is on such a file
system. For example, <OT>"/tmp" might be implemented as swapfs on one
system, as a physical disk on another, and even as a remote
NFS-mounted filesystem on yet another, with all three systems running
the same version of the same operating system.</OT>)

--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,840 network members.