Я последнее время начал читать cat.c
и спутать с функцией io_blksize
, эту функцию, определенную следующим образом:io_blksize кажется просто вернуть IO_BUFSIZE
static inline size_t
io_blksize (struct stat sb)
{
return MAX (IO_BUFSIZE, ST_BLKSIZE (sb));
}
и
enum { IO_BUFSIZE = 128*1024 };
#define DEV_BSIZE 4096
#define ST_BLKSIZE (statbuf) DEV_BSIZE
Теперь проблема io_blksize
казалось всегда возвращайте IO_BUFSIZE
, почему бы не просто определить функцию:
static inline size_t
io_blksize (struct stat sb)
{
return IO_BUFSIZE;
}
и в макросе ST_BLKSIZE
Каков эффект параметров sb
? ST_BLKSIZE(sb)
, похоже, всегда возвращается 4096
.
Возможно, поэтому auto configure может заменить #defines, если это необходимо? –
Соответствующие макросы (в частности, 'ST_BLKSIZE()') зависят от операционной системы, а последняя может даже возвращать разные значения в зависимости от файла/устройства под рукой. – vonbrand