리눅스 상에서 thread를 5개 정도 만들고 각각 thread에서
system 함수를 호출 하는 프로그램을 만들고 있습니다.
그런데 system 함수가 main에서는 동작하는데 thread에서는 return 값은 정상인데
실제로 리눅스 콘솔에서 명령어가 실행이 되지 않습니다.
혹시 아시는 분 있으면 답변 부탁합니다.
system이라는 것은 fork와 exec의 조합입니다
system 함수를 호출하면 fork를 통해 자식 프로세스를 만들고, 거기에서 명령어를 실행하게 하죠
exec 함수는 현재 프로세스 이미지를 대체해서 실행한다는 차이점이 있습니다
정확히 어떤 문제인지는 모르겠는데 system 말고 exec로 되는지 안되는지 해보세요
해보니 execv 나 system이나 모두 마찬가지이네요.
환경 : ARM9 상에서 IP Camera를 개발하고 있습니다. gcc : 4.2.0 입니다. 몬타 비스타 리눅스입니다.
Thread 생성하고 나서는 system이나 execv가 모두 않네요.
다른 원인이 있는지 검토해 봐야 겠습니다.
감사합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
질문이 정확히는 모르겠지만요
system이라는 것은 fork와 exec의 조합입니다
system 함수를 호출하면 fork를 통해 자식 프로세스를 만들고, 거기에서 명령어를 실행하게 하죠
exec 함수는 현재 프로세스 이미지를 대체해서 실행한다는 차이점이 있습니다
정확히 어떤 문제인지는 모르겠는데 system 말고 exec로 되는지 안되는지 해보세요
한번 해 보겠습니다. ^^
해보니 execv 나 system이나 모두 마찬가지이네요.
환경 :
ARM9 상에서 IP Camera를 개발하고 있습니다.
gcc : 4.2.0 입니다.
몬타 비스타 리눅스입니다.
Thread 생성하고 나서는 system이나 execv가 모두 않네요.
다른 원인이 있는지 검토해 봐야 겠습니다.
감사합니다.
댓글 달기