Симптомы

Рассмотрим следующий сценарий:

  • Создать приложение в 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:

Общие сведения о функции fopen() и _wfopen()

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×