栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2.size

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2.size

文章目录
    • ssize_t
      • 头文件
      • 类型
      • 作用
      • POSIX手册原文
      • 归纳
    • size_t
      • 头文件
      • 类型
      • 作用
      • POSIX手册原文:
      • 归纳
    • 补充

ssize_t 头文件

类型

有符号整型

作用

字节数或(为负时)标识错误。
由多个系统调用和库函数返回,作为指示错误的一种方式。如read()、write()

ssize_t read(int fd, void *buf, size_t nbyte);
ssize_t write(int fd, const char* buf, size_t nbyte);
POSIX手册原文

ssize_t : Used for a count of bytes or an error indication1.

归纳
  • 无符号
  • 字节数或错误标识
size_t 头文件

类型

无符号整型

作用

对象大小(以字节数计)。
用于表示内存中对象的大小,是sizeof运算符和strlen函数的返回值类型。这意味着它是无符号整书类型,它的具体大小取决于平台;选择的尺寸足够大以表示该平台上的所有尺寸。

比如:对数组索引时,size_t保证足够大以表示数组中所有可能的索引。

POSIX手册原文:
  1. size_t : Unsigned integer type of the result of the sizeof operator.
    The implementation2 shall support one or more programming environments in which the
    widths of ptrdiff_t, size_t, and wchar_t are no greater than the width of type long.

    The names of these programming environments can be obtained using the confstr() func‐
    tion or the getconf utility.
归纳
  • 无符号整型
  • 足够大(取决于平台)
  • 表示对象大小
  • 宽度不大于long类型
  1. size_t : Used for sizes of objects.
补充

关于read()、write()中一次性读写nbyte(size_t类型)字节,返回值为却为ssize_t 类型,这说明nbyte是可能超过ssize_t的最大上限SSIZE_MAX3的。

手册中:

  1. According to POSIX.1, if count is greater than SSIZE_MAX, the result is implementa‐tion-defined; see NOTES for the upper limit on Linux.
  1. If the value of nbyte is greater than {SSIZE_MAX}, the result is implementation-de‐
    fined.

说是由具体实现定义的,不过很是奇怪它们怎么解决。
我想应该是没有解决的,不过看了stackoverflow上的讨论,觉得
很有道理论:
SSIZE_MAX,在我的64位机上,是2^63-1,也就是9223372036854775807,也就是8589934591.9GB,85亿GB。

呵呵,应该等到我去世都不用担心这个问题。


  1. n. 指示;显示;表明;标示;象征 ↩︎

  2. n.实施;执行;贯彻;生效;完成;工具;仪器;供给器具 ↩︎

  3. 头文件 ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号