perl 에서 system() 호출시.

whatisid의 이미지

질문이 있습니다.

perl에서 system() 함수 호출시 이게 끝나기를 기다렸다가 다음으로

넘어가나요? 아니면 바로 다음으로 넘어가나요? 궁금합니다-_-

간단하게

/tmp/a.pl

#!/usr/bin/perl

$a = 1;
while ( $a = 1 )
{
}

/tmp/main.pl

#!/usr/bin/perl

system("/tmp/x.pl");
print "End!";

두개 짜서 main.pl을 돌렸는데, End! 가 안나오는걸로 봐서

system()이 종료되길 기다리는거 같습니다.

하지만 이게 항상 이런건지, 혹시나 OS나 환경의 특성을 타는지 알고 싶네요.

C의 system() 함수도 기다려주는걸로 아는데....

혹시 아시는 분의 답변 부탁드립니다^^

neohwang의 이미지

system(cmd)에서

cmd가 종료될때까지 기다립니다.
이것은 C 나 Perl이 나 마찬가지 입니다.

따라서 cmd가 종료되지 않아 무한정 기다리는 일이 없도록 주의해서 프로그램 해야 됩니다.