임베디드장비에 리눅스 2.4.18을 올렸습니다.
시스템이 돌아가는 중 IP, NM, GW 을 변경할 일이 생기는데,
exec 류 함수와 ioctl 을 이용하는 방법 중 어떤 것이 더 나을까요:?:
exec를 사용하게되면, 필연적으로 fork()를 호출하게 될테고, 소위
fork-and-exec유형으로 되겠지요. 프로세스하나 생성하고, 그것으로 해당
프로그램을 실행하는 유형이 되겠지요. 이 경우 fork()하는데 걸리는 오버헤드가
필연적으로 뒤따르고, exec한 프로그램의 처리결과를 파악하는데 아픔이
있겠지요.
반면, ioctl을 사용하면, 커널에 직접 명령을 주는 유형이 되니까, 시간및 자원의
순간적이나마 소모를 줄일 수 있을것입니다. 처리 결과를 보는데도 전자보다는
아픔이 덜할테고. 단지, 제대로 만들고, 에러없이 수행하게 만들수 있는가?라는
문제가 남겠습니다.전자의 경우는 수없이 많은 필드테스트(?)가 이뤄진 것들이라
비교적 신뢰적이지만, 후자는 꼭 그러한것은 아닐수 있기 때문입니다.
결론적으로, 개발자의 의지에 달려있다고 볼 수 있겠습니다.
* 저는 개인적으로 후자를 추천합니다. 앞서 언급한 사안외에도,
다른 프로그램으로 인하여 내 프로그램이 영향을 받을 수 있는 상황을
최소화하고 싶은 마음때문입니다. 이를테면 해당 프로그램의 경로, 또는 ,
누군가의 해킹프로그램이 이름이 도용되어 내가 호출하고자 하는 프로그램으로
둔갑(!)하고 있는 상황등등을 생각해볼 수 있겠습니다.
Re: [질문] execl 과 ioctl 과연 어느것이 더 나을까요?
exec를 사용하게되면, 필연적으로 fork()를 호출하게 될테고, 소위
fork-and-exec유형으로 되겠지요. 프로세스하나 생성하고, 그것으로 해당
프로그램을 실행하는 유형이 되겠지요. 이 경우 fork()하는데 걸리는 오버헤드가
필연적으로 뒤따르고, exec한 프로그램의 처리결과를 파악하는데 아픔이
있겠지요.
반면, ioctl을 사용하면, 커널에 직접 명령을 주는 유형이 되니까, 시간및 자원의
순간적이나마 소모를 줄일 수 있을것입니다. 처리 결과를 보는데도 전자보다는
아픔이 덜할테고. 단지, 제대로 만들고, 에러없이 수행하게 만들수 있는가?라는
문제가 남겠습니다.전자의 경우는 수없이 많은 필드테스트(?)가 이뤄진 것들이라
비교적 신뢰적이지만, 후자는 꼭 그러한것은 아닐수 있기 때문입니다.
결론적으로, 개발자의 의지에 달려있다고 볼 수 있겠습니다.
* 저는 개인적으로 후자를 추천합니다. 앞서 언급한 사안외에도,
다른 프로그램으로 인하여 내 프로그램이 영향을 받을 수 있는 상황을
최소화하고 싶은 마음때문입니다. 이를테면 해당 프로그램의 경로, 또는 ,
누군가의 해킹프로그램이 이름이 도용되어 내가 호출하고자 하는 프로그램으로
둔갑(!)하고 있는 상황등등을 생각해볼 수 있겠습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기