当前位置: 技术问答>linux和unix
怎么知道uid_t就是int型的呢
来源: 互联网 发布时间:2017-03-26
本文导语: uid_t uid; gid_t gid; printf("uid:%d, gid:%dn", uid, gid); 在unistd.h中只找到这样子的定义 # ifndef __uid_t_defined typedef __uid_t uid_t; # define __uid_t_defined # endif 我怎么知道uid_t就是int型的呢? | ...
uid_t uid;
gid_t gid;
printf("uid:%d, gid:%dn", uid, gid);
在unistd.h中只找到这样子的定义
# ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
# endif
我怎么知道uid_t就是int型的呢?
gid_t gid;
printf("uid:%d, gid:%dn", uid, gid);
在unistd.h中只找到这样子的定义
# ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
# endif
我怎么知道uid_t就是int型的呢?
|
那就继续找__uid_t 的定义看看
find /usr/include -name "*.h"|xargs grep -w __uid_t|grep def
find /usr/include -name "*.h"|xargs grep -w __uid_t|grep def
|
Linux内核是没有浮点型的类型,大多是整型、长整型、字符型等,
用uid_t、gid_t、size_t、pid_t...有利于平台的移植,屏蔽了平台上的实际数据类型的差异
用uid_t、gid_t、size_t、pid_t...有利于平台的移植,屏蔽了平台上的实际数据类型的差异
|
我的机器上是
/usr/include/sys/types.h:82
typedef __uid_t uid_t;
/usr/include/bits/types.h:135
__STD_TYPE __UID_T_TYPE __uid_t;
/usr/include/bits/typesizes.h:31
#define __UID_T_TYPE __U32_TYPE
/usr/include/bits/types.h:102
#define __U32_TYPE unsigned int
/usr/include/bits/types.h:127
# define __STD_TYPE typedef
|
在AIX平台的查找结果
/usr/include/sys/types.h:typedef uint_t uid_t; /* user ID */
/usr/include/sys/types.h:typedef unsigned int uint_t;
/usr/include/sys/types.h:typedef uint_t uid_t; /* user ID */
/usr/include/sys/types.h:typedef unsigned int uint_t;
|
打印一下看看输出长度一样不一样呗。