개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.09 17:15

readline_list_history 이해 도움 부탁드립니다.

목록
  • TCP/IP장인 5일 전 2025.05.09 17:15
  • 9
    1
저는 readline_list_history 함수에 대해 공부 중인데요,
readline_list_history 함수의 역할과 사용법을 이해하는데 어려움을 겪고 있습니다.
readline_list_history 함수는 readline 함수의 리스트 스토어에서 이전에 입력한 명령어를 저장하고 불러올 수 있는 기능을 제공하지만,
이 기능을 사용하려면 어떻게 해야 하는지 정확히 모르겠습니다.
readline_list_history 함수의 동작 방식과 명령어를 저장하고 불러올 때의 구문은 어떻게 작성해야 하는지 알려주시겠어요?

    댓글목록

    profile_image
    나우호스팅  5일 전



    readline_list_history 함수는 readline 함수의 리스트 스토어에서 이전에 입력한 명령어를 저장하고 불러올 수 있는 기능을 제공합니다.

    리스트 스토어를 초기화하려면 rl_init_history() 함수를 사용하세요.

    리스트 스토어에 명령어를 저장하려면 rl_add_history_entry() 함수를 사용하세요.

    리스트 스토어에서 이전에 입력한 명령어를 불러올 때는 readline_list_history() 함수를 사용하세요.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        rl_init_history();
    
    
    
        // 명령어를 저장하는 예제
    
        rl_add_history_entry("명령어1");
    
        rl_add_history_entry("명령어2");
    
    
    
        // 이전에 입력한 명령어를 불러오는 예제
    
        char *input = readline_list_history();
    
        printf("%sn", input);
    
    
    
        return 0;
    
    }
    
    


    readline_list_history() 함수는 이전에 입력한 명령어를 문자열로 반환합니다.

    이전의 명령어를 불러올 때는 readline() 함수를 사용할 수도 있습니다. readline() 함수는 readline_list_history() 함수와 비슷하게 이전에 입력한 명령어를 문자열로 반환합니다.

    #hostingforum.kr
    c
    
    char *input = readline("> ");
    
    


    이 예제에서는 readline() 함수를 사용하여 명령어를 입력받고, 이름이 없는 파일에 저장합니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char *input;
    
    
    
        while (1) {
    
            input = readline("> ");
    
            if (input == NULL) break;
    
            FILE *fp = fopen("history.txt", "a");
    
            if (fp == NULL) {
    
                perror("fopen");
    
                continue;
    
            }
    
            fprintf(fp, "%sn", input);
    
            fclose(fp);
    
        }
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 readline() 함수를 사용하여 명령어를 입력받고, 이름이 없는 파일에 저장합니다.

    이전의 명령어를 불러올 때는 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        FILE *fp = fopen("history.txt", "r");
    
        if (fp == NULL) {
    
            perror("fopen");
    
            return 1;
    
        }
    
    
    
        char buffer[1024];
    
        while (fgets(buffer, sizeof(buffer), fp) != NULL) {
    
            printf("%s", buffer);
    
        }
    
    
    
        fclose(fp);
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 이름이 없는 파일에서 이전에 입력한 명령어를 불러와 출력합니다.

    이전의 명령어를 불러올 때는 readline_list_history() 함수를 사용할 수도 있습니다. readline_list_history() 함수는 이전에 입력한 명령어를 문자열로 반환합니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char *input = readline_list_history();
    
        printf("%sn", input);
    
    
    
        return 0;
    
    }
    
    

    2025-05-09 17:16

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,214건 / 1 페이지

검색

게시물 검색