嵌入式 ssize_t与size_t的联系

本文介绍了嵌入式系统中,ssize_t和size_t类型的定义和区别。size_t通常用于表示非负长度,而ssize_t在可能会返回负值的函数中使用,如read和write操作。此外,还提到了类似类型loff_t,它是一个long long类型的定义。
摘要由CSDN通过智能技术生成

Ssize_t 与size_t

跟踪linux源码得到以下宏:

#ifndef _SIZE_T

#define _SIZE_T

typedef __kernel_size_t size_t;

#endif

#ifndef _SSIZE_T

#define _SSIZE_T

typedef __kernel_ssize_t ssize_t;

#endif

在不同平台上,其具有不同的定义:

typedef unsigned long __kernel_size_t;

typedef long __kernel_ssize_t;

typedef unsigned int __kernel_size_t;

typedef int __kernel_ssize_t;

这就是两个类型的实际定义,从字面上意思来说:

Ssize_t = signed size_t

使用位置:

在对于缓冲区大小等等非负值的长度时一般使用 size_t;

而对于像

ssize_t (*read) (struct file *, char __user *, size_t, loff_t*);

ssize_t (*write) (struct file *, const char __user *, size_t,loff_t *);

ssize_t (*aio_read) (struct kiocb *, const struct iovec *,unsigned long, loff_t);

ssize_t (*aio_write) (struct kiocb *, const

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值