프로그래밍 언어/C, C++

[C언어] GNU readline 사용법

sujo 2022. 1. 18. 16:32

GNU readline 사용법

 

개요

GNU readline은 명령 줄 인터페이스에서 줄 편집 및 입력 기록 저장 등의 역할을 하는 라이브러리다. 입력 자동완성, 커서 이동, 잘라내기, 복사, 붙여 넣기 등의 기능을 지원하며, Bash 등의 명령 줄 기반 인터랙티브 소프트웨어에서 사용된다.

 

GNU readline wiki

 

 

readline 설치

1
sudo apt-get install -y libreadline-dev
cs

 

 

readline 개념

man readline

 

1
char *readline(const char *prompt);
cs

 

문자열을 반환하므로 매번 입력을 받을 때는 메모리 관리에 신경써야 한다.

컴파일 할 때는 -lreadline 플래그를 추가해줘야 한다.

ex) gcc sample.c -lreadline

 

 

예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <readline/readline.h>
#include <readline/history.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(void)
{
        char *str;
        while(1)
        {
                str = readline("Enter the string : ");
                if (strcmp(str, "exit"== 0)
                {
                        printf("exit ...\n");
                        break;
                }
                else
                        printf("Result : %s\n\n", str);
                add_history(str);
                free(str);
        }
        return(0);
}
 
cs

 

문자열 입력. (line 12)

exit를 입력하면 반복문 탈출. (line 13 ~ line 17)

키보드 up, down키를 누르면 전에 입력했던 문자열들이 나타남 (line 20)