Linux编程
文章平均质量分 59
onelight1997
A GOOD MAN!
展开
-
linux c语言定时器
本文转载于http://hi.baidu.com/ljd_1986513/blog/item/d0bee6503f00d5113b293556.htmllinux定时器的使用使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实,还有一个方法,那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了转载 2011-03-23 10:18:00 · 26218 阅读 · 1 评论 -
linux线程控制和通信
本文转载于:http://hi.baidu.com/xpatwhu/blog/item/d671f44150fff729cefca37b.html1.Linux“线程” 笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源转载 2011-04-24 16:24:00 · 2771 阅读 · 1 评论 -
autoconf 和automake生成Makefile文件
原文链接:http://www-128.ibm.com/dEVEloperworks/cn/linux/l-makefile/ 本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Make转载 2011-09-07 19:04:27 · 513 阅读 · 0 评论 -
gdb调试程序不能显示线程创建信息问题
往往最简单的问题,就越难以想到。做下记录,以此铭记~!首先这是个很简单的问题,但是很难查找很难解决。这是个库文件太旧的问题,只需要升级glibc这个库就可以解决!原创 2011-10-11 22:58:27 · 1084 阅读 · 0 评论 -
一个生产者多个消费者问题
问题描述:一个缓冲区具有多个消费者和一个生产者,生产者往缓冲区中顺序写数据,每个消费者首先访问最新被写缓冲,然后顺序访问。原创 2012-03-28 16:15:22 · 3697 阅读 · 0 评论 -
Linux 原子操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。 使原创 2012-03-31 10:15:27 · 732 阅读 · 0 评论 -
linux下的互斥锁,条件变量和信号量
进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。一、互斥锁互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。需要的头文件:pthread.h互斥锁标转载 2012-04-01 23:27:41 · 1118 阅读 · 0 评论 -
pthread_cond_timedwait实例代码
函数声明:int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime);其中abstime是绝对系统时间代码如下:#include #include #include #include #include #include原创 2012-05-08 21:18:52 · 10367 阅读 · 0 评论 -
linux下时间有关的函数和结构体
1、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.(1) time_t是一个长整型,一般用来表示用1970年以来的秒数.该类型定义在中.一般通过 time_t time = time(NULL); 获取.(2) st原创 2012-05-10 12:28:36 · 5897 阅读 · 1 评论