너무나 쉬운 질문입니다
다른 것이 아니라
execl의 사용법이 궁금해서요
자료를 봐도 잘 이해가 가지 않아서
이렇게 글을 올리게 되었어요
가령
리눅스의 어떤 실행 파일을 실행 하려고 하는뎅
ex>
ls -al | more
를 execl를 이용해 프로그램을 짜서
옵션들을 받아서 실행 하려고 합니다
어떻게 해야 할지 알려 주세요
이 문장에서 '|'(파이프)가 쓰였네요.
이것은 쉘에서 파싱해서 파이프로 연결해서
프로그램을 실행하는 것입니다.
따라서 쉘의 도움 없이 exec계열 시스템콜을 이용하려면
파이프에 대해 아셔야겠죠. 보통은 차일드프로세스 하나 더 띄워서
한 프로세스의 표준출력을 다른 프로세스의 표준입력으로
파이프로 연결해서 exec계열로 프로세스 내용을 바꿔버립니다.
pipe, dup2, fork 등... 골치아프죠. P
(다른 방법도 있겠죠. popen도 있고 기타 등등...;;)
system을 이용한다면 (아마) 쉘을 통해서 실행될테니깐
무리없이 될 것입니다만, exec계열과는 다르게
실행되고 나서 다시 프로그램의 호출 이후 시점으로 돌아옵니다.
알아서 잘 하셔야 할 듯...
아... 중요한 답변... execl 사용법을 아시고 싶으시면
맨페이지 보세요. -_-;;
Re: execl의 사용법좀 알려주세요
ls -al | more
을 프로그래밍으로 하실다고요??
그러면 파이프를 이용해야하는 거 아닌가요??
execl("ls","ls -al");
대충 이런식으로 하면 될듯하네요..
좀더 자세한건 man을 참조하시면 쉬울듯 하네요.. ^^
많은 도움이 못되서 죄송합니다.
Re: execl의 사용법좀 알려주세요
set uid 프로그램이 아니라면 system을 이용하는건 어떨까요.
Re: execl의 사용법좀 알려주세요
> ls -al | more
이 문장에서 '|'(파이프)가 쓰였네요.
이것은 쉘에서 파싱해서 파이프로 연결해서
프로그램을 실행하는 것입니다.
따라서 쉘의 도움 없이 exec계열 시스템콜을 이용하려면
파이프에 대해 아셔야겠죠. 보통은 차일드프로세스 하나 더 띄워서
한 프로세스의 표준출력을 다른 프로세스의 표준입력으로
파이프로 연결해서 exec계열로 프로세스 내용을 바꿔버립니다.
pipe, dup2, fork 등... 골치아프죠. P
(다른 방법도 있겠죠. popen도 있고 기타 등등...;;)
system을 이용한다면 (아마) 쉘을 통해서 실행될테니깐
무리없이 될 것입니다만, exec계열과는 다르게
실행되고 나서 다시 프로그램의 호출 이후 시점으로 돌아옵니다.
알아서 잘 하셔야 할 듯...
아... 중요한 답변... execl 사용법을 아시고 싶으시면
맨페이지 보세요. -_-;;
댓글 달기