readline의 readline()과 history관련 함수를 사용하면 쉘에서처럼
한 라인씩 입력받고 에디팅하는 기능을 사용할 수 있습니다.
단 readline 라이브러리와 curses 라이브러릴가 필요합니다.
자세한것은 readline과 history의 맨페이지를 참고하시고
...대충 다음과 같은 형식으로 작성하면 됩니다.
(테스트해본것은 아니라서 자잘한 오류는 있겠습니다만... )
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
...
char * line;
using_history()
while (1) {
line = readline("Prompt");
if (line == NULL)
break;
if (!strcmp(line, "")) {
free(line);
continue;
}
add_history(line);
/* line을 이용해서 필요로 하는 작업을 합니다.
단 line이 그대로 history에 등록되어 있으므로
수정시에는 strdup() 등을 이용해서 복사 후 사용
*/
}
clear_history();
readline 라이브러리를 쓰면 되지않을까요?
readline의 readline()과 history관련 함수를 사용하면 쉘에서처럼
한 라인씩 입력받고 에디팅하는 기능을 사용할 수 있습니다.
단 readline 라이브러리와 curses 라이브러릴가 필요합니다.
자세한것은 readline과 history의 맨페이지를 참고하시고
...대충 다음과 같은 형식으로 작성하면 됩니다.
(테스트해본것은 아니라서 자잘한 오류는 있겠습니다만... )
빌드시에는 -lreadline -lhistory -lcurses 옵션이 필요할겁니다
휘파람이 좋아~
고맙습니다^^;
감사..
한번 찾아보도록 하겠습니다.
Hyo-Sung Lee(李曉星/Mark Lee)
KRSF Certified Inline Skate Instructor
Fitness Inline Skate Trainer
Mogul&Freeride Skier
IDOne ski rider
Cafe MogulBuddy/KoreaMogul
E-Leader(C) Programmer
댓글 달기