我最近开始阅读cat.c
并且对函数感到困惑io_blksize
,该函数定义如下:
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
似乎总是 return IO_BUFSIZE
,为什么不直接定义函数:
static inline size_t
io_blksize (struct stat sb)
{
return IO_BUFSIZE;
}
在宏ST_BLKSIZE
中参数的作用是sb
什么?ST_BLKSIZE(sb)
似乎4096
总是回来。