2013-04-19 2 views
3

저는 큰 C 전문가는 아니기 때문에이 질문에 (아마도) 쉬운 질문을합니다. C로 작성된 스크립트가 있는데 실행 시간을 입력으로 제한하고 싶습니다.C에서 실행 시간을 제한하는 방법

처럼 : ./script.c 입력 1 입력 2 입력 3 입력 4

입력 4 초에서 시간 제한되어야한다. PHP에서

,이 같은 것입니다 :

$_GET['time'] = $time; 

max_execution_time($time); 또는 set_time_limit($time) 을 그리고 I는 다음과 같이 실행합니다 : http://domain.com/script.php?time=60

내가 init_rand(time(NULL));는 시간 제한을 위해 일해야한다고 생각하지만, "GET"(input4)에서 변수를 가져 오는 방법은 무엇입니까?

+2

C#을하지 않습니다 C 태그를 수정하십시오. – Steve

+1

실행 시간을 제한하면 무엇을 의미합니까? – deepmax

답변

3

이 프로그램을 다른 프로그램의 하위 프로그램으로 실행할 수 있습니다.

if ((pid = fork()) < 0) { 
    exit(1); 
} else if (pid == 0) { 
    execvp("this prog", argv); 
} else { 
    sleep(atoi(argv[4]); 
    kill(pid, SIGTERM); 
} 

또는 bash 스크립트를 사용하여 작업을 수행 할 수 있습니다. 다음과 같이 GCC을 사용하여 Linux에서 컴파일 잘 경우

./thisprog $1 $2 $3 & 
sleep $4 
kill $! 2>/dev/null 
+0

같은 스크립트에서 코드를 작성하고 싶습니다. 다른 스크립트를 체크 아웃하고이를 수집했습니다. init_rand (time (NULL)); – user2298995

0

,

gcc ./a.out input1 input2 input3 input 4 

당신은 한계를 설정하는 기능 setrlimit()을 사용할 수 있습니다.

다음 코드는 직접 C 프로그램에서 ulimit 명령을 호출,

system(ulimit -t TIME_LIMIT); 

당신이 사용자 정의 제한을 설정하려면, 다음 코드가 도움이 될 수도,

int i; 
char com[100]; 

i=atoi(argv[4]); 

sprintf(com,"ulimit -t %d",i); 
system(com); 
+0

업데이트 된 답변을 확인하십시오. – Deepu

관련 문제