そのため、readlineを使用してデフォルトのテキストをユーザー入力に詰め込もうとしていますが、OSX10.5で機能させるのに問題があります。
// rl_insert_text_ex.c
// gcc -o rl_insert_text_ex rl_insert_text_ex.c -lreadline
#include <stdio.h>
#include <readline/readline.h>
int my_startup_hook(void) {
return rl_insert_text("ponycorns");
}
int main(int argc, char *argv[]) {
char *line;
rl_startup_hook = (Function*) my_startup_hook;
line = readline("What's your favorite mythical animal? ");
if (NULL == line || '\0' == *line) {
printf("Nothing given... :(\n");
}
else {
printf("That's funny, I love %s too!\n", line);
}
return 0;
}
このコードは10.4ではコンパイルされません(_rl_insert_text
10.4では定義がありません。これは少し厄介です)が、10.5ではコンパイルされます。ただし、rl_insert_text()
'dテキストが画面に表示されたり、ユーザー入力として返されたりすることはありません。コールバックが使用されておりrl_insert_text()
、適切な値を返します(ありがとうございますprintf
)。そのため、ここで何が起こっているのかわかりません。
私はチェックしまし/usr/include/readline/readline.h
た、そしてrl_insert_text()
下にあります:
/* supported functions */
これは紛らわしい下にあります:
/*
* The following is not implemented
*/
それで、私はSOLですか、それとも間違っているだけですか?