0

所以我试图重现 bash,当我在 bash 中按下 control + \ 时,它什么也不做。所以我试图重现这种行为,这是我的代码。

# include <signal.h>
# include <readline/readline.h>
# include <readline/history.h>
# include <stdlib.h>
# include <unistd.h>

void    sig_handler(int sig)
{
    write(2, "\b \b", 2);
}

int main(void)
{
    signal(SIGQUIT, sig_handler);
    while (1)
    {
        char *line = readline("test> ");
        if (!line)
            break;
        free(line);
    }
    return (0);
}

当我按下 control + \ 时,它第一次工作,但是当我再次按下它时,它开始显示 ^ 字符,那么我应该怎么做呢?顺便说一句,我在 macOS 上。

编译此代码运行gcc main.c -lreadline

4

0 回答 0