What is the purpose of features.h header?

前端 未结 4 1491
北海茫月
北海茫月 2020-12-29 08:15

What is the purpose of the features.h header? Why and when can it be used in my code?

Does it define source features supported by the system? Or does i

4条回答
  •  有刺的猬
    2020-12-29 08:54

    I have grepped POSIX 7 as explained at: https://unix.stackexchange.com/questions/340285/install-the-latest-posix-man-pages/483198#483198 and there are no hits for features.h, so it must be a glibc extension only.

    In glibc 2.28, it is present at include/features.h.

    One of the interesting things that it defines are version macros:

    #include 
    #include 
    
    int main(void) {
      printf("__GLIBC__       %u\n", __GLIBC__);
      printf("__GLIBC_MINOR__ %u\n", __GLIBC_MINOR__);
      return 0;
    }
    

    Ubuntu 16.04, which has glibc 2.23, this outputs:

    __GLIBC__       2
    __GLIBC_MINOR__ 23
    

    See also: Check glibc version for a particular gcc compiler

    Also, this header seems to get included in most / all glibc headers, which might allow you to check if glibc is being used: How to tell if glibc is used but TODO I couldn't find a documentation for that.

提交回复
热议问题