대화형 프로그램을 작성할때, expect라는 라이브러리를 사용하면 편리한 경우가 많습니다.
비슷한 경우인지 검토해보세요.
libexpect를 먼저 설치하시고.(이미 설치되었겠지요 아마도)
#include <stdio.h>
#include <expect.h>
// gcc -o test test.c -lexpect
typedef struct tagAuto {
char *challenge;
char *responce;
} AUTO;
int main(){
FILE *fp1;
int ec;
char buff[2][128]= {"mach", "비밀번호", "logout" };
exp_loguser = 1;
exp_timeout = 3600;
if (0 == (fp1 = exp_popen("telnet 호스트주소" ))) {
printf("exp_popen failed\n");
exit(-1);
}
if (0 > exp_fexpectl(fp1,exp_glob,"login:",0,exp_end)) exit(-1);
fprintf(fp1,"%s\n", buff[0]); // login: 이라는 프롬프트가 오면 버퍼0의 값을 보냄
if (0 > exp_fexpectl(fp1,exp_glob,"Password:",0,exp_end)) exit(-1);
fprintf(fp1,"%s\n", buff[1]); // Password:라는 프롬프트가 오면 버퍼 1의 값을 보냄
if (0 > exp_fexpectl(fp1,exp_glob,"%",0,exp_end)) exit(-1);
fprintf(fp1,"%s\n", buff[2]); // %라는 프롬프트가 오면 버퍼 2의 값을 보냄
return(0);
}
* 그런데, < 기호와 > 기호를 < 및 > 로 써야하는건가요?
그렇게 안하면, 인클루드문에서 헤더파일명 부분이 나타나지 않던데,.... 어디 다른 곳에서 세팅해야 하는건지 모르겠군요.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
libexpect
대화형 프로그램을 작성할때, expect라는 라이브러리를 사용하면 편리한 경우가 많습니다.
비슷한 경우인지 검토해보세요.
libexpect를 먼저 설치하시고.(이미 설치되었겠지요 아마도)
* 그런데, < 기호와 > 기호를 < 및 > 로 써야하는건가요?
그렇게 안하면, 인클루드문에서 헤더파일명 부분이 나타나지 않던데,.... 어디 다른 곳에서 세팅해야 하는건지 모르겠군요.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기