What does #define _POSIX_SOURCE mean?

What advantages does using #define _POSIX_SOURCE in C confer to my program? Can I access more libraries in my program or I can call some functions which are present directly in C. What is this macro used for?

Upvotes: 18

Views: 27398

Answers (1)

Pablo
Pablo

Reputation: 13590

It allows you to use functions that are not part of the standard C library but are part of the POSIX.1 (IEEE Standard 1003.1) standard. Using the macros described in feature_test_macros allows you to control the definitions exposed by the system header files.

As far as I know _POSIX_SOURCE is obsolete and you should use _POSIX_C_SOURCE instead.

For example, if you want to use strndup, you have to use

#define _POSIX_C_SOURCE 200809L

See also

Upvotes: 29

Related Questions