Symptômes
Considérez le scénario suivant :
-
Vous créez une application dans Microsoft Visual C++ 2010.
-
Vous utilisez la fonction fopen() dans l’application pour ouvrir un fichier, et la fonction utilise le mode d’accès r +ou a + .
-
Vous exécutez l’application et l’applicationtries pour ouvrir un fichier qui est égale ou supérieure à 4 gigaoctets (Go).
Dans ce scénario, le fichier ne s’ouvre pas, ou le message d’erreur suivant est renvoyé :
EINVAL (argument non valide)
Cause
Ce problème se produit en raison de la façon dont la fonction fopen() recherche à la fin des fichiers une fois qu’il ouvre les fichiers pour permettre l’ajout. La fonction fopen() utilise en interne la fonction _lseek() pour effectuer cette action. Toutefois, la fonction _lseek() ne peut pas gérer les fichiers qui sont égaux ou supérieurs à 4 Go.
Résolution
Ce correctif modifie le comportement de la famille des fopen() de fonctions. Après avoir appliqué ce correctif logiciel, la fonction fopen() utilise en interne une fonction que vous pouvez effectuer une recherche au-delà de la limite de 4 Go sans renvoyer une erreur. Plus précisément, la fonction fopen() utilise la fonction _lseeki64() au lieu de la fonction _lseek() .
Informations sur le correctif
Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique.
Pour résoudre ce problème, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations relatives aux frais de support technique, visitez le site Web Microsoft suivant :http://support.microsoft.com/contactus/?ws=supportRemarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.
Conditions préalables
Pour appliquer ce correctif, vous devez disposer de Microsoft Visual Studio 2010 Service Pack 1 (SP1) est installé.
Nécessite un redémarrage
Vous devrez peut-être redémarrer l’ordinateur après avoir installé ce correctif logiciel si les fichiers concernés sont utilisés.
Informations de remplacement du correctif
Ce correctif ne remplace pas un correctif précédemment publié.
Informations sur les fichiers
La version globale de ce a les attributs de fichier (ou ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration. Pour toutes les versions prises en charge de Microsoft Visual Studio 2010 SP1
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Mfcm100.dll |
10.0.40219.362 |
82,696 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100d.dll |
10.0.40219.362 |
104,720 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100u.dll |
10.0.40219.362 |
82,704 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100ud.dll |
10.0.40219.362 |
106,256 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100.dll |
10.0.40219.362 |
93,960 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100d.dll |
10.0.40219.362 |
120,592 |
15-Nov-2011 |
23:56 |
x64 |
Mfcm100u.dll |
10.0.40219.362 |
93,968 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100ud.dll |
10.0.40219.362 |
122,128 |
15-Nov-2011 |
23:56 |
x64 |
Mfcmifc80.dll |
10.0.40219.362 |
14,096 |
16-Nov-2011 |
21:26 |
x86 |
Plus d'informations
Pour plus d’informations à propos d’un autre package de correctif qui s’applique au Package redistribuable de Microsoft Visual C++ 2010 Service Pack 1 (SP1), cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
2606060 correctif : vous ne pouvez pas ouvrir un fichier qui est au moins 4 Go pour ajouter ou pour écrire des données à l’aide d’une application qui utilise le Package redistribuable Visual C++ 2010 Pour plus d’informations sur les fonctions fopen() et _wfopen() , reportez-vous au site Web MSDN suivant :
Informations générales sur les fonctions fopen() et _wfopen()
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».