I&#x27;m not the parent commenter, but experience has taught me that testing for features, not versions, is definitely the right way to go.  The alternative ends up with you creating a hodge-podge database of which features are present in which operating systems &#x2F; versions, which is inevitably out-of-date, incomplete and wrong.<p>Only test for the features you actually care about, though.  And at this point, it&#x27;s perfectly fine for a new project to assume some baselines like POSIX-1996 and even C99 (unless you&#x27;re targeting Windows...).