Oprava: Aplikace nevrací popisovač při volání funkce _popen CRT v Visual C++ .NET 2003

Překlady článku Překlady článku
ID článku: 892086 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Při použití C funkce _popen (CRT) run-time v Microsoft Visual C++ .NET 2003 aplikace nevracení popisovač při každém volání funkce.

Příčina

Zvýšit výkon implementace funkce _popen CRT byl změněn v Visual C++ .NET 2003. Funkce CreateProcess WinAPI funkce _popen CRT nyní používá namísto funkce _spawnl CRT. Nevrácení popisovače je způsobena chybou v Visual C++ .NET 2003. Tato chyba způsobí, že pole hThread popisovač struktury PROCESS_INFORMATION zůstat otevřené.

Řešení

Společnost Microsoft má nyní k dispozici podporovanou opravu hotfix, která je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud není použití tento problém, doporučujeme počkat na další aktualizaci Visual Studio .NET 2003 service pack, která obsahuje tuto opravu hotfix.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na služby podpory společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb technické podpory společnosti Microsoft a informace o cenách technické podpory naleznete na tomto webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Poplatky, které je třeba obvykle zaplatit za telefonní hovory, mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft zjistí, že oznámený problém lze vyřešit konkrétní aktualizací. Další dotazy a žádosti o odbornou pomoc, které se netýkají této zvláštní opravy, podléhají běžným sazbám za poskytnutí odborné pomoci.

Požadavky

Neexistují žádné požadavky.

Požadavek na restartování

Po instalaci této opravy hotfix není třeba počítač restartovat.

Informace o nahrazení opravy hotfix

Tato oprava Hotfix nenahrazuje žádné další opravy Hotfix.

INFORMACE O SOUBORECH

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   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

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Ověřte, zda má aplikace nevrácení popisovače, sledovat počet popisovačů ve správci.

Například při sestavení a spusťte následující kód projektu Visual C++ Win32 konzoly počet popisovačů bude pokračovat ve Správci zvýšit:
// 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;

}

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 892086 - Poslední aktualizace: 15. května 2006 - Revize: 2.2
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbqfe kbbug kbfix kbprb kbhotfixserver KB892086 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:892086

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com