我试图从命令行的标准输入一次读取任意长度的一行。我不确定是否能够包含 GNU readline 并且更喜欢使用库函数。
我读过的文档表明getline
应该可以工作,但在我的实验中它不会阻塞。我的示例程序:
#include <stdio.h>
int main()
{
char *line = NULL;
if (getline(&line, NULL, stdin) == -1) {
printf("No line\n");
} else {
printf("%s\n", line);
}
return 0;
}
产生No line
,这使得它不适合接受用户输入。
我该怎么做呢?我知道这应该是微不足道的,但我一直无法弄清楚。
试试这个补丁
char *line = NULL;
+size_t size;
+if (getline(&line, &size, stdin) == -1) {
-if (getline(&line, 0, stdin) == -1) {
printf("No line\n");
} else {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)