FIX: Applicazione perdite un handle quando si chiama la funzione _popen di CRT in Visual c ++ .NET 2003

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 892086
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Quando si utilizza il C Runtime (CRT) _popen funzione in Microsoft Visual c ++ .NET 2003, le perdite di applicazione un punto di manipolazione di ogni volta che si chiama la funzione.
Cause
Per migliorare le prestazioni, l'implementazione per la funzione di _popen CRT è stato modificato in Visual c ++ .NET 2003. La funzione di _popen CRT, ora, utilizza la funzione WinAPI CreateProcess anziché la funzione di _spawnl CRT. La perdita di handle è causata da un bug in Visual c ++ .NET 2003. Questo bug consente hThread handle della struttura PROCESS_INFORMATION per rimanere aperto.
Risoluzione
Un hotfix supportato è disponibile da Microsoft, tuttavia è destinato esclusivamente per risolvere il problema descritto in questo articolo. Utilizzarla solo nei sistemi in cui si verifica questo problema specifico. Questo aggiornamento rapido (hotfix) potrebbe essere eseguiti ulteriori test. Se non si è notevolmente interessati da questo problema, si consiglia pertanto di attendere il rilascio del prossimo service pack di Visual Studio .NET 2003 che contiene questo aggiornamento rapido (hotfix).

Per risolvere immediatamente questo problema, contattare il servizio supporto tecnico clienti Microsoft per ottenere l'hotfix. Per un elenco completo di numeri di telefono del servizio supporto tecnico clienti Microsoft e per informazioni sui costi dell'assistenza, visitare il seguente sito Web Microsoft: Nota in casi particolari, le spese normalmente addebitate per le chiamate al Servizio Supporto Tecnico Clienti Microsoft potrebbero essere annullate qualora un addetto del Supporto Tecnico Microsoft dovesse determinare che uno specifico aggiornamento risolverà il problema. I normali costi del Servizio Supporto Tecnico Clienti verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.

Prerequisiti

Non è richiesto alcun prerequisito.

Necessità di riavvio

Non è necessario riavviare il computer dopo avere applicato questo aggiornamento rapido (hotfix).

Informazioni sulla sostituzione della correzione

Questo aggiornamento rapido (hotfix) non sostituisce eventuali altri hotfix.

Informazioni sui file

La versione di lingua inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e le ore per questi file sono indicati in UTC (Coordinated Universal Time). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   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
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".
Informazioni
Per verificare che l'applicazione dispone di un problema di handle, monitorare il numero di Handles in Task Manager.

Ad esempio, quando si crea e quindi eseguire il seguente codice di progetto Console Win32 di Visual c ++, il conteggio Handles continueranno a aumentare in Task Manager:
// 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;}
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft
Visual Studio Update QFE 3432

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 892086 - Ultima revisione: 12/09/2015 02:02:04 - Revisione: 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 KbMtit
Feedback