После семи лет разработки профессиональное общество института инженеров электротехники и электроники (IEEE Computer Society) и консорциум Open Group утвердили новую версию стандарта POSIX 1003.1-2024, нацеленного на обеспечение переносимости программ между UNIX-подобными системами. Стандарт определяет программные интерфейсы между операционными системами и прикладными программами, и охватывает набор библиотечных функций, возможностей командного интерпретатора и утилит.
Текст стандарта пока доступен только в формате PDF для платных клиентов, образовательных учреждений и пользователей, имеющих учётную запись на сайте IEEE. В ближайшее время текст стандарта будет опубликован публично на сайте Open Group (пока публично доступна только прошлая редакция POSIX 1003.1-2017, вышедшая в 2017 году).
Из изменений в POSIX 1003.1-2024, помимо исправления ошибок, можно отметить реализацию в shell сток $’…’, добавление утилит readlink и realpath, появление в утилите find опций “-print0” и “-iname”, добавление в xargs опции “-0” (использование нулевого символа в качестве разделителя, например, формируемого через find -print0), в read – опции “-d” (разделитель), в sed опции “-E” (расширенные регулярные выражения), в set – опции “-o pipefail“.
Для программ на языке Си добавлена поддержка константы SIGWINCH, реализованы фунции tcgetwinsize (определение размера окна терминала), gettext (организация многоязычных интерфейсов), asprintf (форматирует строку и выделяет буфер с учётом размера вывода), strlcpy и strlcat (аналоги strncpy и strncat, содержащие защиту от переполнения буфера и выставляющие замыкающий строку нулевой байт), добавлена поддержка спецификации C17. В утилите make появилась поддержка вложенных макросов, разрешено указание нескольких файлов в директиве include, добавлены новые цели .NOTPARALLEL, .PHONY и .WAIT, добавлен макрос CURDIR, указывающий на текущий каталог, добавлены операторы назначения макросов и переменных “::=”, “:::=”, “+=”, “?=” и “!=”.