1
포크를 통해 새 프로세스를 시작하려고 시도하지만 때로는 자식이 코드를 실행하지 않습니다. ps
을 실행하면 새 아이를 볼 수 있습니다.포크 : 자식이 코드를 실행하지 않습니다.
if(stream_pid == 0)
을 평가하기 전에 자식 프로세스가 중지되거나 대기중인 것과 같습니다.
이 임의의 문제를 어떻게 해결할 수 있습니까?
내가 150MHz의에서 ARM의 SoC에이 코드를 실행은 (는 도움을 줄 수 있는지 알고하지 않습니다 : P)
static void process_thread_func(void)
{
const char *ret = NULL;
char *argv[2];
char *status = NULL;
int stream_pid;
int flag = 0;
int err = 0;
stream_pid = fork();
if(stream_pid == 0)
{
argv[0] = "/usr/bin/mplayer";
argv[1] = "tv:// -tv driver=v4l2:device=/dev/video0:outfmt=y8:width=320:height=240";
argv[2] = NULL;
err = execv("/usr/bin/mplayer" , argv);
if(err < 0)
printf("execv failed, reason: %d\n", errno);
}
else if(stream_pid < 0)
printf("Cannot create mplayer child, reason: %d\n", errno);
else
{
(void)waitpid(stream_pid, &flag, 0);
}
}
이 숯불 *의 변수는 argv [2]'변경해보십시오;'의 char *의 변수는 argv [3]'에;' – user3386109