CORRECÇÃO: Aplicações fugas de uma alça quando chamar a função de _popen CRT no Visual C++ .NET 2003

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 892086
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sintomas
Quando utilizar a C run-time (CRT) _popen função no Microsoft Visual C++ .NET 2003, as fugas de aplicação uma alça de cada vez que chamar a função.
Causa
Para ajudar a melhorar o desempenho, a implementação para a função de _popen CRT foi alterada no Visual C++ .NET 2003. A função de _popen CRT agora utiliza a função WinAPI CreateProcess em vez da função _spawnl CRT. A alça de fuga é causada por um erro no Visual C++ .NET 2003. Este erro faz com que o campo de identificador hThread da estrutura PROCESS_INFORMATION permaneça aberta.
Resolução
Agora é disponibilizada pela Microsoft uma correcção suportada, mas destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do Visual Studio .NET 2003 que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa de números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft: Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

Pré-requisitos

Não pré-requisitos são necessários.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição de correcções

Esta correcção não substitui quaisquer outras correcções.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Time   Version            Size    File name   --------------------------------------------------------------   03-Feb-2005  02:57                     13,858  A_map.c   03-Feb-2005  03:27                    363,744  Eh.lib   03-Feb-2005  02:57                     10,456  Io.h   06-Feb-2004  19:29                      4,246  Ios.cpp   03-Feb-2005  03:30                  2,707,628  Libc.lib   03-Feb-2005  03:34                  3,023,492  Libcd.lib   03-Feb-2005  03:31                  2,937,528  Libcmt.lib   03-Feb-2005  03:36                  3,304,810  Libcmtd.lib   03-Feb-2005  03:30                  3,601,372  Libcp.lib   03-Feb-2005  03:35                  4,433,774  Libcpd.lib   03-Feb-2005  03:32                  3,651,664  Libcpmt.lib   03-Feb-2005  03:36                  4,449,888  Libcpmtd.lib   03-Feb-2005  04:11  7.10.4353.0       499,712  Msvcp71.dll         03-Feb-2005  03:37  7.10.4353.0       765,952  Msvcp71d.dll        03-Feb-2005  04:11  7.10.4353.0       348,160  Msvcr71.dll         03-Feb-2005  03:37  7.10.4353.0       544,768  Msvcr71d.dll        03-Feb-2005  02:58                     17,400  Popen.c   03-Feb-2005  02:57                      9,948  Read.c   03-Feb-2005  16:00                    202,240  Vc_user_crt71_rtl_x86_---.msm   03-Feb-2005  16:00                    151,040  Vc_user_stl71_rtl_x86_---.msm
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informação
Para verificar se a aplicação tem uma fuga de identificador, monitorize o número de identificadores de no Gestor de tarefas do Windows.

Por exemplo, quando compilar e executar o código de projecto de Visual C++ Win32 consola seguinte, o número de identificadores de continuarão a aumentar no Gestor de tarefas do Windows:
// Testpopen.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <conio.h>int _tmain(int argc, _TCHAR* argv[]){	FILE * pPipe = NULL;	char	buffer[128] = {0};	while (!kbhit())	{		pPipe = _popen("dir *.* /s", "r");		if (pPipe != NULL)		{			printf(_T("Pipe opened at 0x%08x\n"), (unsigned long)pPipe);			while (!feof(pPipe))			{				if (fgets(buffer, 128, pPipe))					printf(buffer);			}			printf("Pipe closed (%d)\n", _pclose(pPipe));					}	}		return 0;}
Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft
Visual Studio actualização QFE 3432

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 892086 - Última Revisão: 12/09/2015 02:02:05 - Revisão: 2.2

Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio .NET 2003 Enterprise Developer, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft Visual Studio .NET 2003 Academic Edition

  • kbnosurvey kbarchive kbmt kbqfe kbbug kbfix kbprb kbhotfixserver KB892086 KbMtpt
Comentários