这是一篇关于 POSIX 2024 标准的文章,主要介绍了该标准在多个方面的更新和改进,包括 Shell 中文件名处理、现代 C、限制与协作、Makefiles、日志记录、国际化以及一些小的更改等。
主要观点:
- POSIX 2024 标准对多个工具和功能进行了更新和改进,以提高其可用性和互操作性。
- 强调了在不同操作系统和工具链中保持兼容性的重要性,以及如何通过标准化来解决互操作性问题。
- 介绍了一些新的实用工具和功能,如
timeout(1p)、支持新的 C 标准等,以满足现代应用程序的需求。
关键信息和重要细节:
Shell 中文件名处理:
- 常见的 Shell 脚本错误是假定文件名中不会出现换行符,POSIX 2024 通过
find(1p)的-print0、xargs(1p)的-0和read(1p)的-d ''来解决此问题,但仍存在局限性。 - 一些 C 函数被鼓励在创建包含换行符的文件名时报告
EILSEQ错误,许多实用工具也被鼓励在创建或打印包含换行符的文件名时出错,以提高安全性。
- 常见的 Shell 脚本错误是假定文件名中不会出现换行符,POSIX 2024 通过
现代 C:
- 长期以来,大多数 C 程序目标为
c89或c99,而 POSIX 2024 要求c17,未来版本将要求最现代且已被主要工具链实现的 C 标准版本,这将使使用现代 C 更加容易。
- 长期以来,大多数 C 程序目标为
限制与协作:
nice(1p)、renice(1p)和ulimit(1p)等工具得到了更新,ulimit(1p)现在支持报告硬限制和软限制,renice(1p)也支持相对更改优先级,还新增了timeout(1p)工具。
Makefiles:
- POSIX Make 与其他 Make 实现存在兼容性问题,POSIX 2024 增加了对
$^、$+等内部宏以及一些其他特性的支持,使 Makefile 在不同实现之间更具兼容性。
- POSIX Make 与其他 Make 实现存在兼容性问题,POSIX 2024 增加了对
日志记录:
logger(1p)在 POSIX 2024 中成为更完整的命令,支持从 stdin 读取内容进行日志记录、指定 syslog 优先级等,使日志记录更方便。
国际化:
- POSIX 2024 采用了
gettext套件,通过.po和.mo文件实现多语言翻译,在 Shell 脚本中也可以方便地使用gettext(1p)和ngettext(1p)等工具。
- POSIX 2024 采用了
Minor Changes:
readlink(1p)和realpath(1p)成为标准工具,rm(1p)增加了-d和-v参数,printf(1p)支持编号转换规格,sed(1p)得到升级,test(1p)增加了新的比较操作,引入了内在实用工具set(1p)的新功能等。
总之,POSIX 2024 标准在多个方面进行了改进,旨在提高系统的互操作性、安全性和易用性,对于开发人员和系统管理员来说具有重要意义。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。