1
2 개의 별도 exe 파일을 호출하고 csv 파일을 출력하고 출력 할 때까지 기다렸다가 그 결과 파일을 읽어야하는 테스트 프로그램을 작성하고 있습니다.C - 실행 파일을 실행하고 끝날 때까지 기다림
저는 파이프를 만들고 출력을 보여주기 위해 현재 _popen
을 사용하고 있습니다.하지만 실제로는 아무 것도 필요하지 않습니다. feof
은 무의미한 것처럼 보입니다.
- 내가 자신의 cmd를 창에 팝업 내 응용 프로그램을 실행 :
는 내가 가지고 싶은 것은 이것이다.
- 그것은 그것의 자신의 창안에 모두를하는 exe1를 부른다.
- 자체 윈도우에서 모든 것을 수행하는 exe2를 호출합니다.
- 둘 다 종료하면 계속됩니다.
다른 방법이 있습니까?
편집 : 주위에 놀아 난 System("exe1");
을 사용하면 본질적으로 지금하고있는 것이 하나의 줄로 나타납니다. 아니면 여기에 뭔가 빠졌나요?
int runTest(char* testName)
{
char psBuffer[128];
FILE *pPipe;
if ((pPipe = _popen(testName, "r")) == NULL)
{
printf("Failed to open %s", testName);
return 0;
}
while (fgets(psBuffer, 128, pPipe))
{
printf(psBuffer);
}
if (feof(pPipe))
{
printf("%s returned %d\n", testName, _pclose(pPipe));
return 1;
}
else
{
printf("Error: Failed to read the pipe to the end.\n");
return 0;
}
}
Windows를 사용하고 계신 것 같습니까? 유닉스의 경우 [fork] (http://en.wikipedia.org/wiki/Fork_ (system_call))를 수행 한 다음 하위 프로그램에서 exec를 수행하고 해당 PID에 대한 부모를 기다릴 수 있습니다 (stdin/stdout를 필요한 경우 자녀). 어쩌면 비슷한 해결책이 또한 작동 할 것이지만, 나는 당신에게 어떤 세부 사항도 줄 수 없다. ... –
'system ("path \\ to \\ your.exe");은 당신이 원하는 것을한다. 실행 파일이 종료하는 종료 값이 필요하면'system' 호출의 리턴 값을 확인하십시오. 이것은 Windows 용 trie입니다. – ThoAppelsin