Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57082
  • 博文数量: 22
  • 博客积分: 1546
  • 博客等级: 上尉
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-20 20:33
文章分类
文章存档

2010年(22)

分类: LINUX

2010-07-24 11:28:03

在获取线程ID的时候,常用到pthread_self()函数获取当前线程的ID,它返回的ID是pthread_t类型的。如果要打印出线程ID,用什么输出格式呢?

在中例题8_1中使用的是%u,即unsigned int,但是编译时候有一个warning:

format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘pthread_t’。

其实线程ID的格式应该是unsigned long,所以输出格式为:%lu。再次编译就对了。linux中还有一些ID类的数据类型,比如常见的pid,它的输出格式为%d;再比如文件状态结构体struct stat *buf中的st_ino字段,它的类型为ino_t,而输出格式为%ld。

阅读(1059) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~