콘솔프로그램의 input output 을 가로채고 싶습니다..
글쓴이: 임창진 / 작성시간: 목, 2005/12/01 - 9:50오전
제환경은 winXP ,cygwin 이 설치되어있고 expect는 cygwin에서 compile 한 것입니다.
expect를 사용해서 서버에로그인해서 프로그램을 실행 시키고 그결과를 파일로 받아놓고 expect 가 종료되면 그 파일을 파싱해서 제 프로그램(pc에서 실행되는)에서 보여주고 있습니다.
이런일이 자주있다보니까 expect 에서 매번 서버에로그인하고 프로그램실행시키기때문에 속도가 떨어집니다.
expect 가 서버에 로그인한후 대기하다가 제프로그램에서 expect에게 실행할 명령을 넘기고 그결과를 바로 받아볼수있는 방법이 있을까요?
아니면 expect 말고 달리 이와 비슷한일을 처리할수 있는 방법이 있는지 알고싶습니다.
Forums:
popen()
popen()
expect가 서버에 계속 로그인 된 상태로 동작하고 있고이 프로세스
expect가 서버에 계속 로그인 된 상태로 동작하고 있고
이 프로세스가 종료되지 않은 상태로
새로운 동작을 추가시킬 수 있는 방법을 찾고 계신것 같은데요..
좋은 아이디어인것 같습니다.
만약 이걸 구현하려면 tcl 명령들을 조합해서, 스크립트 파일을 읽어드리도록 구현해야할것 같습니다.
아니면, expect 가 하는 동작이 일정하게 정해져 있다면
굳이 서버에 접속 -> 명령 수행 -> 접속 종료
를 하지 말고
서버에 접속 -> 명령 수행 -> 대기 -> 명령 수행 -> 대기 -> 명령 수행
이런식으로 하면 안되나요?
어떤 상황이신지 잘 알 수가 없어서.....
그리고 expect 자체가 좀 느린 편입니다..
코드 관리하기도 좀 복잡하고...
rsh 같은 것을 사용해보시면 어떨까 하는 생각도 듭니다...
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
[quote="hyperhidrosis"]popen()[/quote]
popen은 단방향(읽기 또는 쓰기)으로만 할 수 있습니다.
좀 .... 그렇지요.
양방향인 경우 pipe, dup 이 좋은 해결로 보입니다.
그리고, 어차피 출력 문자열 보고 뭔가 입력해야하는 대화식 유형이라면, expect같은 것을 사용하던가 또는 만들던가 해야 합니다.
* expect가 느린가요? 그리 느려보이지는 않는데, ......
그러나, 윗 분이 말씀하셨듯이 접속/해제 회수를 줄여보는 방법을 먼저 시도해 보시는게 좋겠습니다.
* 보다 나은 답변은, 때때로, 보다 나은 질문에서 나온다는....
댓글 달기