Readline
readline 的 rl_parse_and_bind 導致崩潰
我正在使用 Ubuntu 18.04.5。這個非常簡單的程序在呼叫
rl_parse_and_bind
. 誰能幫我?// Build with cc read.c -o read -lreadline #include <readline/readline.h> // apt install libreadline-dev int main() { rl_parse_and_bind("\"C-b\":history-search-backward"); char *input = readline("Input: "); }
這是因為
readline
庫將使用主動修改該字元串strtok
,而您傳遞的字元串是一個常量。嘗試寫入它會導致分段錯誤。嘗試:
char *copy = strdup("\"C-b\":history-search-backward"); rl_parse_and_bind(copy); // free(copy); copy = NULL; // This to tidy up things
可寫的副本將起作用。