ストリームで使用されるバッファ サイズを取得する移植可能な方法はありますか?
glibcオンラインで投稿を検索すると、次の方法があることがわかりました。
size_t __fbufsize (FILE *stream)
ただし、これは glibc を使用している場合にのみ機能します。
別のオプションは、マクロBUFSIZとフラグ_IONBFとを使用すること_IOLBFです:
void print_buffering(FILE * fp)
{
    if (fp->_flags & _IONBF)
    {
        printf("No buffering\n");
    }
    else if (fp->_flags & _IOLBF)
    {
        printf("Line buffering - buffer size: %d\n", BUFSIZ);
    }
    else
    {
        printf("Full buffering - buffer size: %d\n", BUFSIZ);
    }
}
に依存するBUFSIZことは、バッファサイズが常に一定であることを示唆しています。これは常に当てはまりますか?