coreutilsのソースコードを読み始めました。
最初にbasenameから読んだんですが、lib/basename.cにある、
size_t base_len (char const *name)
{
size_t len;

for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
continue;

return len;
}
という関数がsrc/basename.cで
name[ base_len(name) ] = '\0';
と呼び出されています。size_tがいまいち理解できてないんですが、
この配列(name)の添字となる関数やその内部の変数には何故intを使わずにsize_tを使っているんでしょうか。
説明下手クソでごめんなさい。ソースもどういう範囲でコピペしたらいいのかわからなくて。