}
-int main(int argc, char** argv)
+int main(int argc, char* argv[], char* envp[])
{
bool argHelp=false;
bool argTime=false;
if( pid == 0)
{
char** newargv = (char**) malloc( sizeof(char*)*(argc-fiarg+1) );
- char* newenv[] = {NULL};
//Copy arguments
for( int i=fiarg; i<argc; i++)
//Execute child process
- execve(newargv[0], newargv, newenv);
+ execve(newargv[0], newargv, envp);
perror("execve");
return ERR_EXECVE;
}
float loops=0;
//Status flags of child process
int status;
- //100ms granularity
- const int ussleep=100000;
+ //granularity
+ const int ussleep=25000;
while(true)
{
if( waitpid(-1, &status, WNOHANG | WUNTRACED | WCONTINUED) < 0 )
break;
- if( WIFEXITED(status) )
- break;
-
//Sleep a round
usleep(ussleep);
loops++;