execl("/bin/ps", "ps", "-ax", 0) 코드에서 왜 ps가 중복될까요??
글쓴이: 고양이를부탁해 / 작성시간: 토, 2009/01/17 - 8:04오전
안녕하세요 KLDP 여러분들!!
exec 계열 함수들을 사용할때 제목처럼 사용을 하던데요
execlp("ps", "ps", "-ax", 0);
execl("/bin/ps", "ps", "-ax", 0);
그런데 왜 ps 부분이 중복이 되는지.....
아 그리고 다음처럼 exec함수를 호출해도 실행이 되던데 ..
execlp("ps", "", "-ax", 0);
이건 무슨 조화인지...하하;;
사용을 하면서도 이해가 계속 안가서 질문드려요
좋은 답변 감사합니다!! :)
Forums:
http://kldp.org/node/1548
http://kldp.org/node/1548
검색은 해보셨슴까?
아 검색을 건성으로 한거 같네요 ^^;;
검색에 좀 더 공을 들였어야 하는데..
답변 감사드립니다!!
첫 번째 ps가 실행할 프로그램의 경로명을 포함한 이름이라면
굳이 두 번째에 또 ps가 들어갈 필요가 있을까 싶어서요
링크하신 페이지에서는
main(int argc , char *argv[])
에서 argv[]들을 찍어보면 argv[0]에 파일 이름이 들어가는 것처럼
제일 첫번째 인자로 파일 이름을 넣어주는 것 같습니다..
그럼....^^;;
이라고 언급이 되어있긴 한데 인자로 파일명을 넣어준다는게 쉽게 이해가 안가네요
execlp("ps", "", "-ax", 0); 이렇게 코드를 넣고 실행해도 실행이 되더라구요.
먼가 이유가 있을 거 같은데
이 부분에 대해서 도움을 좀 받을 수 있을까요??
------------
힘들면 즐겁다.
------------
힘들면 즐겁다.
혹시...
$ man 3 exec
이상의 정보를 원하시나요?
심심해서 찾아봤습니다.
없음
프로그래밍 공부하면서 mapage도 안봤네요..
어디 쥐구멍이라도 숨어야겠네요... -_-;;
그런데 글로 남기신 코드는 어떻게 찾으신건가요??
------------
힘들면 즐겁다.
------------
힘들면 즐겁다.
_
argv[0]은 일반적으로 사용할 일이 없긴 하지만, 특수한 경우에 사용하기도 합니다. 프로그램 도움말을 출력할 시점에 자기 프로그램 이름이 무엇인지 알아낸다든지요. 사실 argv[0]의 용도는 매뉴얼을 봐도 알기 힘들지 않을까요 :) 다음 글도 참고하세요.
http://ideathinking.com/blog-v2/?p=52
아....
그렇네요 busybox의 경우에는 그 용도가 확실하네요
오 이렇게도 argv[0]를 쓰는군요
아 신기하네요 하하;;
------------
힘들면 즐겁다.
------------
힘들면 즐겁다.
댓글 달기