我是靠谱客的博主 拼搏黑裤,最近开发中收集的这篇文章主要介绍Linux符合POSIX标准吗,符合POSIX规定的linux数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

POSIX-Portable Operating System Interface for

Unix,要求C语言库的头文件为每个实现POSIX的机器定义一个一致的类型集。其中的每一个类型定义很容易与本地C语言区分开来,因为它们都以_t结尾。

typedef

__kernel_dev_t dev_t;

typedef

__kernel_ino_t ino_t;

typedef

__kernel_mode_t mode_t;

typedef

__kernel_nlink_t nlink_t;

typedef

__kernel_off_t off_t;

typedef

__kernel_pid_t pid_t;

typedef

__kernel_daddr_t daddr_t;

typedef

__kernel_key_t key_t;

typedef

__kernel_suseconds_t suseconds_t;

typedef

__kernel_timer_t timer_t;

typedef

__kernel_clockid_t clockid_t;

typedef

__kernel_mqd_t mqd_t;

#ifdef __KERNEL__

typedef

_Bool bool;

typedef

__kernel_uid32_t uid_t;

typedef

__kernel_gid32_t gid_t;

typedef

__kernel_uid16_t uid16_t;

typedef

__kernel_gid16_t gid16_t;

typedef unsigned

long uintptr_t;

#ifdef CONFIG_UID16

typedef

__kernel_old_uid_t old_uid_t;

typedef

__kernel_old_gid_t old_gid_t;

#endif

#else

typedef

__kernel_uid_t uid_t;

typedef

__kernel_gid_t gid_t;

#endif

typedef

__kernel_size_t size_t;

#ifndef _SSIZE_T

#define _SSIZE_T

typedef

__kernel_ssize_t ssize_t;

#endif

typedef unsigned

long __kernel_ino_t;

typedef unsigned

short __kernel_mode_t;

typedef unsigned

short __kernel_nlink_t;

typedef

long __kernel_off_t;

typedef

int __kernel_pid_t;

typedef unsigned

short __kernel_ipc_pid_t;

typedef unsigned

short __kernel_uid_t;

typedef unsigned

short __kernel_gid_t;

typedef unsigned

int __kernel_size_t;

typedef

int __kernel_ssize_t;

typedef

int __kernel_ptrdiff_t;

typedef

long __kernel_time_t;

typedef

long __kernel_suseconds_t;

typedef

long __kernel_clock_t;

typedef

int __kernel_timer_t;

可以看出,为了方便数据的移植和统程的统一,在include/linux/types.h中,内核定义了类型的别名,内核可以使用*_t(如dev_t)来统一编程。然后在相关的架构里面对别名进行数据结构的具体定义。

简要地分析几个例子:

1) dev_t

一个包含major和minor的算术类型。对于特定的设备文件,通常可以在/dev子目录下找到。在linux下,一个dev_t可以通过major(),minor(),以及mkdev()宏来操作,这些都可以在中找到。

2) uid_t,gid_t

整数类型,分别保存惟一的ID号或者组ID编号。

3) pid_t

整数类型,为系统每一个进程提供惟一值。

4) id_t

可以涵盖任务pid_t,uid_t或者gid_t的整数类型,不能分割来使用。

5) off_t

有符号整型,以字节为单位度量文件大小。

6) size_t

无符号整数,度量一个内存对象的大小。例如,一个字符串、数组或者缓冲区。

7) ssize_t

有符号整数,它可以表示字节数(正),或者返回错误码(负)。

最后

以上就是拼搏黑裤为你收集整理的Linux符合POSIX标准吗,符合POSIX规定的linux数据类型的全部内容,希望文章能够帮你解决Linux符合POSIX标准吗,符合POSIX规定的linux数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部