setenv()
и unsetenv()
являются функциями POSIX 6 / SUSv3 / XPG6. Если у вас более старая установка Solaris 10, она может предшествовать POSIX 6 и может не иметь setenv()
или unsetenv()
. /usr/include/stdlib.h
будет иметь что-то вроде этого, если ваша установка имеет setenv()
и unsetenv()
:
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
defined(_XPG6)
extern int posix_memalign(void **, size_t, size_t);
extern int posix_openpt(int);
extern int setenv(const char *, const char *, int);
extern int unsetenv(const char *);
#endif
Обратите внимание, что для использования функций необходимо указать конкретные значения #define
'd. Не пытайтесь #define
это напрямую. Для справочной страницы standards.5
вам нужно #define
или использовать опцию -D
компилятора _XOPEN_SOURCE=600
. И вы не должны определять _XOPEN_SOURCE_EXTENDED
вообще. Если _XOPEN_SOURCE_EXTENDED
определено вместе с _XOPEN_SOURCE
, вы получите SUS / XPG4v2, а не SUS3 / XPG6.