我编写了一个函数来包装 GNU getline() 并删除尾随的换行符,但由于某种原因它没有效果。难道我做错了什么?
ssize_t readline(char **lineptr, FILE *stream)
{
size_t len = 0; // Size of the buffer, ignored.
ssize_t chars = getline(lineptr, &len, stream);
if((*lineptr)[chars] == '\n') {
(*lineptr)[chars] = '\0';
--chars;
}
return chars;
}
它编译和链接没有问题,但换行符不会被空终止符替换。我已经验证 if() 语句正在运行。谢谢你的帮助!