REVISIÓN: No se puede abrir un archivo que es de al menos 4 GB para anexar o escribir datos mediante una aplicación de Visual C++ 2010

Se aplica a: Visual Studio 2010 ProfessionalVisual Studio 2010 Ultimate

Síntomas


Imagine el siguiente escenario:
  • Crear una aplicación de Microsoft Visual C++ 2010.
  • Utilice la función fopen() en la aplicación para abrir un archivo, y la función utiliza el modo de acceso r +o a + .
  • Ejecute la aplicación y el applicationtries para abrir un archivo que es igual o mayor que 4 gigabytes (GB).

En este escenario, el archivo no se abre o se devolvió el siguiente error:
EINVAL (argumento no válido)

Causa


Este problema se produce debido a la forma en que busca la función fopen() para los extremos de archivos una vez que se abre los archivos para anexar. La función fopen() utiliza internamente la función _lseek() para realizar esta acción. Sin embargo, la función _lseek() no puede tratar los archivos que son iguales o superiores a 4 GB.

Solución


Esta revisión cambia el comportamiento de la familia fopen() de funciones. Después de aplicar esta revisión, la función fopen() internamente utiliza una función que puede buscar más allá del límite de 4 GB sin devolver un error. Específicamente, la función fopen() utiliza la función _lseeki64() en lugar de la función _lseek() .

Información de la revisión

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que describe este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Para resolver este problema, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Para aplicar este hotfix, debe tener Microsoft Visual Studio 2010 Service Pack 1 (SP1) instalado.

Requisito de reinicio

Tendrá que reiniciar el equipo después de instalar esta revisión si se utilizan los archivos afectados.

Información de reemplazo de revisión

Esta revisión no sustituye a ninguna revisión publicada previamente.

Información de archivo

La versión global de este tiene los atributos de archivo (o atributos de último archivo) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.

Para todas las versiones compatibles de Microsoft Visual Studio 2010 SP1

Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Mfcm100.dll10.0.40219.36282,69615-Nov-201122:32x86
Mfcm100d.dll10.0.40219.362104,72016-Nov-201100:29x86
Mfcm100u.dll10.0.40219.36282,70415-Nov-201122:32x86
Mfcm100ud.dll10.0.40219.362106,25616-Nov-201100:29x86
Mfcm100.dll10.0.40219.36293,96015-Nov-201121:54x64
Mfcm100d.dll10.0.40219.362120,59215-Nov-201123:56x64
Mfcm100u.dll10.0.40219.36293,96815-Nov-201121:54x64
Mfcm100ud.dll10.0.40219.362122,12815-Nov-201123:56x64
Mfcmifc80.dll10.0.40219.36214.09616-Nov-201121:26x86

Más información


Para obtener más información acerca de otro paquete de hotfix que se aplica al paquete redistribuible de Microsoft Visual C++ 2010 Service Pack 1 (SP1), haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

CORREGIR 2606060 : no se puede abrir un archivo que es de al menos 4 GB para anexar o escribir datos mediante una aplicación que utiliza el paquete redistribuible de Visual C++ 2010


Para obtener más información acerca de las funciones fopen() y _wfopen() , visite el siguiente sitio Web MSDN:

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".