首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

如何知道uid_t就是int型的呢

2012-12-30 
怎么知道uid_t就是int型的呢uid_t uidgid_t gidprintf(uid:%d, gid:%d\n, uid, gid)在unistd.h中只找

怎么知道uid_t就是int型的呢
    uid_t uid;
    gid_t gid;
   
 printf("uid:%d, gid:%d\n", 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
[解决办法]
Linux内核是没有浮点型的类型,大多是整型、长整型、字符型等,

用uid_t、gid_t、size_t、pid_t...有利于平台的移植,屏蔽了平台上的实际数据类型的差异
[解决办法]
在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: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_TYPEunsigned int

/usr/include/bits/types.h:127
# define __STD_TYPEtypedef

热点排行
Bad Request.