Newsgroup: it.comp.lang.c++
Titolo: open, fopen e api di sistema

ho avuto un problema con l'utilizzo delle funzioni open e fopen che,
se non sbaglio, dovrebbero appartenenre all'attuale standard c++...
il problema č che avevo fatto una classe che sfruttava queste funzioni
(prima ho provato con open, poi sono passato a fopen), ma mi sono reso
conto che non potevano essere aperti piů di un certo numero di file
contemporaneamente... immagino che questo sia dovuto a quanto viene
inserito nella variabile d'ambiente FILES (parlo di windows)...
non volendo andare a fare cambiamenti in tale senso, ho deciso di
utilizzare le funzioni API di windows FileOpen, accorgendomi che in
questo modo posso aprire molti piů file di prima contemporaneamente...
la domanda č: non dovrebbe lo standard utilizzare funzioni che
permettano di sfruttare al massimo il sistema operativo? cioč, non
dovrebbero open e fopen utilizzare FileOpen su un sistema windows, in
modo tale da permettere di avere tutti i benefici delle ultime
versioni del sistema operativo (gestione della memoria, dell'accesso
al disco e, non ultima, la possibilitŕ di avere piů files aperti
contemporaneamente)?
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 permettano di sfruttare al massimo il sistema operativo?
Questa e` una parte completamente al di fuori dello standard. Nel senso 
che se una particolare implementazione su un particolare OS limita il 
numero dei file apribili contemporaneamente, sono cavoli dell'OS e 
dell'implementazione.
(cmq, il numero di default di file apribili contemporaneamente e` di 
solito un numero abbastanza ragionevole - se uno lo supera senza un buon 
motivo probabilmente c'e` qualche cosa che non va nella progettazione 
del programma - o anche nell'implementazione).
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

del programma - o anche nell'implementazione).
parliamo di circa 15 file, tanto per farti capire l'ordine di
grandezza... forse si arrivava a 20 ma non di piů (sono tabelle di un
database)


 database)
Beh, effettivamente una ventina di file non sono tanti.
Cmq, limiti sul numero di file aperti contemporaneamente non mi pare che 
ce ne siano affatto nello standard del C++, per cui dovrebbe trattarsi 
di un limite (o di un baco, o di una errata configurazione) della 
specifica implementazione (che peraltro, in fin della fiera, non puo` 
far altro che usare sotto sotto le routine di I/O fornite dal sistema...)
Prova a rivolgerti ad un gruppo specifico per Windows, tipo
     it.comp.programmare.win32


 stesso con le librerie dello standard c++
Se usi il Borland C++ 5.5.1 allora c'è una libreria (BCC640.LIB) che
consente di superare quel limite. Se non la trovi dimmelo che te la
mando io.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 contemporaneamente)?
a) Lo standard deve definire il massimo comun denominatore: cio' che sei
garantito trovare su *qualsiasi* piattaforma, anche il piu' piccolo
processore embedded sul quale sia implementato il linguaggio.
b) E' l'autore del compilatore che decide come implementare lo standard,
ovvero quali funzioni del sistema operativo chiamare.
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG