stat поле st_blksize значение
Изучая данный исходник (https://github.com/Remillardj/RewritingHistory/blob/master/cat.c (упрощенная версия cat)) Наткнулся на:
if (fstat(wfd, &sbuf) == -1) {
perror("ERROR (!)");
exit(1);
}
// wfd равен дескриптору stdout
bsize = sbuf.st_blksize; // Вернет 1024 байт, что это означает?
if ((buf = malloc(bsize)) == NULL) {
perror("ERROR (!)");
exit(1);
}
Можете пожалуйста русским языком объяснить почему он вернул 1024 байт. Просматривал англоязычные вопросы на эту тему. Всё равно не очень понятно. st_blksize вернуло "размер блока ввода / вывода" что это означает? Что-то маловато, почему не 8192? Я сначала подумал, что речь идет о размере буфера stdout, но видимо речь не об этом.