C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[75031] [질문] CreateProcess로 콘솔프로그램 실행시 Handle의 지속적인 증가?
단단한돌 [heaven2] 379 읽음    2018-07-24 18:16
HandleIncreaseStatus.png 59.7KB 핸들이 증가하는 화면
환경: C++ Builder XE2

CreateProcess()함수를 이용해 콘솔 프로그램을 실행 시킵니다.
그런데,
실행 시킬 때마다 작업관리자에서 보면 핸들이 지속적으로 증가합니다.
156 => 158 => 160 => ...
왜 이런 증상이 발생하나요?
24시간 운영되는 S/W라 리소스 소모에 민감하네요.

고수님들~!
미리 감사합니다.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    bool flag;
    STARTUPINFO si;
    memset(&si, 0, sizeof(STARTUPINFO));
    si.cb = sizeof(STARTUPINFO);
    si.dwFlags = STARTF_USESTDHANDLES;
    PROCESS_INFORMATION pi;
    
    UnicodeString Dir = GetCurrentDir();
    UnicodeString File = "abcd.exe";
    UnicodeString x = Dir + "\\" + File + " D:\\201807200120.adx";
    AnsiString xx = x;
    
    flag = CreateProcess(NULL,x.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    
    if(!flag) {
        ShowMessage("Fail to create process.");
    } else {
        ShowMessage("Executed..");
    }
}


콘솔 프로그램 소스는 아래와 같습니다.(샘플로 만든 콘솔 어플입니다.)

#pragma hdrstop
#pragma argsused

#include 

int main(int argc, wchar_t **argv)
{
	int i = 0;
	for (i = 0 ; i < argc ; ++i)
		printf("%s\n", argv[i]);

	return 0;
}


+ -

관련 글 리스트
75031 [질문] CreateProcess로 콘솔프로그램 실행시 Handle의 지속적인 증가? 단단한돌 379 2018/07/24
75032     Re: CreateProcess로 콘솔프로그램 실행시 Handle의 지속적인 증가? 빌더(TWx) 387 2018/07/25
75033         Re:Re: CreateProcess로 콘솔프로그램 실행시 Handle의 지속적인 증가? 단단한돌 353 2018/07/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.