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;
}
問題なくコンパイルおよびリンクされますが、改行はnullターミネータに置き換えられません。if()ステートメントが実行されていることを確認しました。助けてくれてありがとう!