If you ignore the fact that you can't call them, perhaps.. The direct mapping to S_ISDIR would be file_stat(..)->isdir, I think.
But yes, posix does define pretty well what directories and symlinks are on a conceptual level too, so there's no ambiguity in how Stdio.{is_dir,is_link} would work.