Impossibile chiamare la funzione fwrite per scrivere un buffer con dimensioni superiore a 64 MB in Visual c ++ 2005, in Visual c ++ .NET 2003 o in Visual c ++ .NET 2002

Traduzione articoli Traduzione articoli
Identificativo articolo: 899149 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

Si consideri lo scenario seguente. In Microsoft Visual c ++ 2005, in Microsoft Visual c ++ .NET 2003 o in Microsoft Visual c ++ .NET 2002, è possibile utilizzare la funzione fopen per aprire un file su un'unità di rete. Nella chiamata di funzione, è possibile utilizzare il tipo di accesso Cartel (scrittura e binario) come parametro modalità . Se quindi si chiama la funzione fwrite per scrivere in un buffer è maggiore di byte 67,076,095, la funzione chiamare ha esito negativo.

Nota 67,076,095 byte sono circa 64 megabyte (MB).

Cause

Il problema si verifica a causa di una limitazione del sistema operativo.

Workaround

Per ovviare al problema, utilizzare uno dei metodi descritti di seguito:
  • Quando si apre un file, utilizzare il tipo di accesso w + b (la lettura e scrittura) come parametro modalità .
  • Utilizzare un buffer di dimensioni inferiore. Quindi, chiamare la funzione di fwrite in un ciclo fino a quando non il numero di byte da scrivere nel file.

Riferimenti

Per ulteriori informazioni sulle funzioni fopen e fwrite , visitare il seguente Microsoft Developer Network (MSDN) siti Web:
fopen, _wfopen
http://msdn2.microsoft.com/en-us/library/yeby3zcb(vs.71).aspx

fwrite
http://msdn2.microsoft.com/en-us/library/h9t88zwz(vs.71).aspx

Proprietà

Identificativo articolo: 899149 - Ultima modifica: venerdì 16 novembre 2007 - Revisione: 2.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Chiavi: 
kbmt kbopenfile kbcode kbtshoot kbprb KB899149 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 899149
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com