2012年11月7日

c 语言时间函数陷阱

摘要: 在编写C语言的应用程序时,为了获取或者打印一些跟时间有关的信息,我们经常会使用到C语言自带的一些时间函数,诸如:time、localtime、ctime、mktime和asctime等。但你可能没有注意到这里面含有一些有趣的现象,先来看一个例子:1 #include <stdio.h>2 #include <time.h>34 int main ()5 {67 time_t time_1, time_2;8 struct tm *tm_1, *tm_2, *tm_3;9 struct tm tm_4, tm_5;1011 printf("----------- 阅读全文

posted @ 2012-11-07 10:14 sslshopper 阅读(247) 评论(0) 推荐(0)

c语言字节对齐

摘要: 文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取它的值的话需要访问两次内存,第一次取从0x00000002-0x00000003的一个short,第二次取从0x00000004-0x00... 阅读全文

posted @ 2012-11-07 10:12 sslshopper 阅读(231) 评论(0) 推荐(0)

linux多线程编程,替代sleep的几种方式

摘要: 我只想要进程的某个线程休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能就达不到,我们想要的效果了。 目前我知道有三种方式:1 usleep这个是轻量级的, 听说能可一实现线程休眠, 我个人并不喜欢这种方式,所以我没有验证它的可行信(个人不推荐)。2 select这个可以,我也用过这种方式, 它是在轮询。3 pthread_cond_timedwait采用pthread_cond_timedwait(pthread_cond_t* cond, pthread_mutex_t *mutex, const struct timespec *abstime)可以优雅的解决该问题,设置 阅读全文

posted @ 2012-11-07 10:10 sslshopper 阅读(1527) 评论(0) 推荐(0)

导航