Симптомы
Рассмотрим следующий сценарий:
-
Создать приложение в Microsoft Visual C++ 2010.
-
Использовать функцию fopen() в приложение для открытия файла, а функция использует режим доступа r +или + .
-
Можно запустить приложение и applicationtries, чтобы открыть файл, который равен или больше 4 гигабайт (ГБ).
В этом случае файл не открывается или возвращена следующая ошибка:
EINVAL (недопустимый аргумент)
Причина
Данная проблема возникает образом ищет функции fopen() в конце файлов после его открытия файлов для добавления. Внутри функции fopen() использует функцию _lseek() для выполнения этого действия. Тем не менее функция _lseek() не может обрабатывать файлы размером более 4 ГБ.
Решение
Данное исправление изменяет поведение функции семейства fopen() . После установки данного исправления функции fopen() внутренне использует функцию, которая может выполнять поиск за пределами 4 ГБ без возвращения ошибки. В частности функции fopen() использует функцию _lseeki64() вместо функции _lseek() .
Сведения об исправлении
Исправление от корпорации Майкрософт доступно. Тем не менее оно предназначено только для устранения проблемы, указанной в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.
Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Предварительные условия
Для установки этого исправления необходимо иметь Microsoft Visual Studio 2010 Пакет обновления 1 (SP1 установлен).
Необходимость перезагрузки
Может потребоваться перезагрузить компьютер после установки исправления, если используются уязвимые файлы.
Сведения о замене исправлений
Это исправление не заменяет ранее выпущенные исправления.
Сведения о файлах
Глобальная версия имеет атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.
Для всех поддерживаемых версий Microsoft Visual Studio 2010 с пакетом обновления 1
Имя файла |
Версия файла |
Размер файла |
Дата |
Время |
Платформа |
---|---|---|---|---|---|
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 |
Дополнительные сведения
Дополнительные сведения о другой пакет исправлений, который применяется для распространяемого пакета Microsoft Visual C++ 2010 Пакет обновления 1 (SP1) щелкните следующий номер статьи базы знаний Майкрософт:
ИСПРАВИТЬ 2606060 : не удается открыть файл, по крайней мере 4 ГБ для добавления или для записи данных с помощью приложения, использующего распространяемого пакета Visual C++ 2010
Дополнительные сведения о функции fopen() и _wfopen() посетите следующий веб-узел MSDN:
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".