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