0
我最近开始读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
。
也许这样的自动配置可以替代#defines(如果适用)? –
相关的宏(特别是'ST_BLKSIZE()')依赖于操作系统,最后一个宏甚至可以根据当前的文件/设备返回不同的值。 – vonbrand