本文主要是介绍嵌入式nbsp;ssize_t与size_t的联系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
这篇关于嵌入式nbsp;ssize_t与size_t的联系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!