gEDA에는 서브 프로세스를 작성하고 종료 상태를 점검하여 성공적으로 완료되었는지 확인해야하는 도우 프로그램이 있습니다.Windows에서 서브 프로세스의 종료 상태 확인
#include <glib.h>
#include <sys/wait.h>
static gboolean
build_and_run_command (const gchar *format, ...)
{
int result, status;
gchar *args, *standard_error;
GError *error = NULL;
/* Set up argument variables */
if (g_spawn_sync (".",
args,
NULL,
G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL,
NULL,
NULL,
NULL,
&standard_error,
&status,
&error)) {
result = (WIFEXITED (status) && WEXITSTATUS(status) == 0);
}
/* Clean up */
return result;
}
full source code for the program는 우리의 자식 저장소에서 찾을 수 있습니다 리눅스에, 우리는 비슷한을 사용합니다.
불행히도, MinGW를 사용하여 Windows 용으로 컴파일 할 때 sys/wait.h
이없고, WIFEXITED
또는 WEXITSTATUS
매크로가 없음을 발견했습니다. g_spawn_sync
을 사용하여 정상 종료를 확인하고 Windows에서 종료 상태를 검색하는 "올바른 방법"은 무엇입니까? Google은 놀라 울 정도로 도움이되지 않았습니다!
Dunno 처음에는 왜 리눅스 시스템 헤더가 과부에서 작동 할 것이라고 기대 했는가 ... – Necrolis
나는 Windows에서 전혀 작동하지 않을 것으로 기대하며 거의 실망하지 않는다. 위의 코드는 Windows 이외의 모든 것에 작동합니다. 누군가 그것을 지원하기 위해 그것을 수정하는 방법을 제안 할 수 있기를 바랬습니다. –