基于 POSIX,在 Linux 和 FreeBSD 上假设 8 位字符是否安全?

问题描述 投票:0回答:1

POSIX 在定义 3.84[1] 中规定一个字节“恰好是一个八位字节”(8 位)。这是否可以安全地假设

char
在所有 Linux 和 FreeBSD 系统上(至少)都是 8 位?

我对 POSIX 是什么以及它试图实现的目标有一些了解,但我不知道 Linux 和 *BSD 系统“必须”在多大程度上符合它。例如,Linux CLI 工具经常执行不属于其 POSIX 规范的操作(尽管它可能始终是超集,因此 POSIX 规范中的任何内容仍然适用)。

[1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_87

编辑:我很清楚 C 标准不保证 8 位字节。我具体询问 POSIX 强制要求是否意味着“8 位字节”在 Linux 和 FreeBSD 上是一个安全的假设。

c linux char posix freebsd
1个回答
0
投票

来自 https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html :

{CHAR_BIT}
    Number of bits in a type char.
    [CX] [Option Start] Value: 8 [Option End]

POSIX 规范规定 char 有 8 位,是的。

© www.soinside.com 2019 - 2024. All rights reserved.