C中的Readline函数输出奇怪的结果

时间:2011-12-01 21:49:45

标签: c linux shell gnu readline

我正在尝试使用GNU Readline库在shell中实现自动完成和历史记录。我正在使用fgets()来检索用户,在阅读了readline函数的工作方式后,我决定使用它以支持自动完成等。但是当我执行我的程序时,{{1}在我输入任何输入之前,函数在shell上输出奇怪的字符。奇怪的结果,例如readlineP�6 PJ�P #`,P s`。出于某种原因,它始终以P开头。这是我的代码:

,

关于问题是什么的任何想法?感谢。

1 个答案:

答案 0 :(得分:3)

在将userInput传递给readLine()之前初始化memset(userInput, 0, sizeof(userInput));

readLine()

这是传递给userInput函数的参数的描述(我在这里找到man readline):

如果参数为NULL或空字符串,则不会发出提示。

由于你没有初始化{{1}},它显示的是那里发生的事情。