spawn
function (exec
을 호출하는 것과 동일한 효과가 있음)에 _P_OVERLAY
을 전달하는 콘솔 응용 프로그램은 현재 프로세스를 파괴합니다. 그것은 그렇게하는 현실에서 그 수신자의 하위 프로세스를 양산 반면 , 그 수신자가 돌아왔다 가정 (종종 cmd.exe
입니다) 과정을 호출 유발한다는 사실이 없었다면이 원하는 동작 것exec() 또는 스폰 (P_OVERLAY)를 호출하면 콘솔의 차단이 해제됩니다. 콘솔을 차단하지 않으려면 어떻게합니까?
여전히 실행 중이므로 호출자는 콘솔을 계속 사용하기 전에 호출 수신자가 종료 될 때까지 기다려야합니다. 호출자가 cmd.exe
(명령 프롬프트) 인 경우
그래서, 무슨 일 호출 수신자가 하위 프로세스를 생성하는 즉시로, 사용자가 즉시 C:\Users\User>
프롬프트가 표시되어, 더욱 명령을 입력 할 자유가된다 하위 프로세스가 아직 실행 중이더라도
내가 가진 최선의 해결책은 자식 프로세스가 종료 될 때까지 현재 프로세스를 종료하지 않는 것입니다.하지만 궁금합니다. 호출 프로세스가 호출 된 프로세스가 호출 수신자가있을 때 계속 대기하기 전에 대기해야합니다. 종료 되었습니까?
그래서'exec()'를 사용하지 않을까요? – alk
@alk : 무슨 뜻이야? 둘은 똑같은 방식으로 행동합니다. – Mehrdad
질문이 명확하지 않습니다. 자식 프로세스를 기다리고 싶니? 또는'cmd.exe'가 어떻게 동작하는지 제어하고 싶습니까? 'CreateProcess' 나'ShellExecute [Ex]'를 사용할 수 없습니까? – Ajay