0

プロセスがまだ実行されているかどうかを確認したい - その場合は現在の時刻を更新する - 関数から戻らない場合 bc プロセスが終了した...プロセスが終了しておらず、停止制限が経過した場合は、ループを終了しますしかし、currTimeが更新されているようには見えません...

int g_iStopLimit = 30; //declared globally


/////process gets signaled to be killed but may take a while to close cleanly...

time_t startTime, currTime;
time(&startTime);
currTime = time(NULL);

do //check to see if process gets killed
{
    if (kill(g_StatusInstance[i].pid, 0) == 0)  //some global array
    {
        currTime = time(NULL);
    }
    else
    {
        return;
    }

}while(currTime >= (startTime + g_iStopLimit));


////send a stronger signal and call kill - use recursion and call function over until it kills it
4

1 に答える 1

3
while(currTime >= (startTime + g_iStopLimit));

する必要があります

while(currTime <= (startTime + g_iStopLimit));

もともとstartTimecurrTimeはほぼ同じなのでkill、 に異常な時間がかからない限り、ループは最初の繰り返しの後に終了します。

于 2013-01-07T21:44:02.497 に答える