Здравствуйте, netch80, Вы писали:
N>На не-seekable поле st_size вообще не будет иметь смысла, так что лучше вначале подумать, а вызывать ли что-то
А явного признака seekable нет. В некоторых системах можно проверить st_mode на S_IFREG и S_IFBLK, но это непереносимо.
Вроде подобный код у меня всегда работал на Linux'ах всяких, Bsd и MacOSX

А на какие системы это непереносимо? просто для общего развития...
if( (st.st_mode & S_IFMT) != S_IFREG )
{
// non-seekable
}
else
{
// st.st_size is valid
}