POSIX 2024 中的新内容 – XCU

这是一篇关于 POSIX 2024 标准的文章,主要介绍了该标准在多个方面的更新和改进,包括 Shell 中文件名处理、现代 C、限制与协作、Makefiles、日志记录、国际化以及一些小的更改等。

主要观点

  • POSIX 2024 标准对多个工具和功能进行了更新和改进,以提高其可用性和互操作性。
  • 强调了在不同操作系统和工具链中保持兼容性的重要性,以及如何通过标准化来解决互操作性问题。
  • 介绍了一些新的实用工具和功能,如timeout(1p)、支持新的 C 标准等,以满足现代应用程序的需求。

关键信息和重要细节

  • Shell 中文件名处理

    • 常见的 Shell 脚本错误是假定文件名中不会出现换行符,POSIX 2024 通过find(1p)-print0xargs(1p)-0read(1p)-d ''来解决此问题,但仍存在局限性。
    • 一些 C 函数被鼓励在创建包含换行符的文件名时报告EILSEQ错误,许多实用工具也被鼓励在创建或打印包含换行符的文件名时出错,以提高安全性。
  • 现代 C

    • 长期以来,大多数 C 程序目标为c89c99,而 POSIX 2024 要求c17,未来版本将要求最现代且已被主要工具链实现的 C 标准版本,这将使使用现代 C 更加容易。
  • 限制与协作

    • nice(1p)renice(1p)ulimit(1p)等工具得到了更新,ulimit(1p)现在支持报告硬限制和软限制,renice(1p)也支持相对更改优先级,还新增了timeout(1p)工具。
  • Makefiles

    • POSIX Make 与其他 Make 实现存在兼容性问题,POSIX 2024 增加了对$^$+等内部宏以及一些其他特性的支持,使 Makefile 在不同实现之间更具兼容性。
  • 日志记录

    • logger(1p)在 POSIX 2024 中成为更完整的命令,支持从 stdin 读取内容进行日志记录、指定 syslog 优先级等,使日志记录更方便。
  • 国际化

    • POSIX 2024 采用了gettext套件,通过.po.mo文件实现多语言翻译,在 Shell 脚本中也可以方便地使用gettext(1p)ngettext(1p)等工具。
  • Minor Changes

    • readlink(1p)realpath(1p)成为标准工具,rm(1p)增加了-d-v参数,printf(1p)支持编号转换规格,sed(1p)得到升级,test(1p)增加了新的比较操作,引入了内在实用工具set(1p)的新功能等。

总之,POSIX 2024 标准在多个方面进行了改进,旨在提高系统的互操作性、安全性和易用性,对于开发人员和系统管理员来说具有重要意义。

阅读 15
0 条评论