ssize_t与size_t-linux

时间:2021-02-19 17:02:55

ssize_t

signed size_t [注释:signed 有符号]

size_t

标准C库中定义的,应为unsigned int [注释:unsigned 无符号]


一、size_t 增强移植性:

[注释:不同的系统上,定义size_t可能不一样,便有了size_t,它是为了方便系统之间的移植而定义的]


32位系统上:

定义为 unsigned int 

也就是说在32位系统上是32位无符号整形

64位系统上:

定义为 unsigned long 

也就是说在64位系统上是64位无符号整形

二、size_t 计数:

一般用于多少东西被拷贝

例如:

sizeof操作符的结果类型是size_t。

该类型保证能容纳实现所建立的最大对象的字节大小。 
适于计量内存中可容纳的数据项目个数的无符号整数类型。
它在数组下标和内存管理函数之类的地方广泛使用。

三、ssize_t 执行读写操作的数据块的大小

它和size_t类似,但必需是signed.

所以:

它表示的是signed size_t类型的。