간단한 다운로더에서 작업하면 배열에 파일 항목이 다운로드됩니다.하위 프로세스 포크
현재 배열의 첫 번째 항목을 다운로드하지만 for 루프가 다음 항목을 다운로드 할 때 이미 다운로드 한 항목과 동일하게 유지됩니다.
의미는 다음 항목으로 증가하지 않지만 필요한 시간 동안 실행된다는 것을 의미합니다.
즉 다운로드 할 항목이 2 개이면 첫 번째 항목을 두 번 다운로드합니다.
나는 내가 포크 (fork) 프로세스 잘못하고 있어요 보라, 또는 카운터가 for 루프에서 리셋을 받고있다
// Begin the downloading process
pid_t child = 0;
child = fork();
wait();
if (child < 0)
{
cout << "Process Failed to Fork" <<endl;
return 1;
}
if (child == 0)
{
wait();
}
else
{
for(int i = 0; i < numberOfDownloads; i++)
{
child = fork();
wait();
execl("/usr/bin/wget", "wget",locations[i], NULL);
}
}
그리고 프로그램은 실제로 다운로더가 아니며 단지'wget'을 둘러싼 래퍼입니다. libcurl (HTTP 클라이언트 처리 용 라이브러리)을 사용하여 조사해야합니다. –
C++에서 std :: async를 사용할 수 있습니다. 11 – balki