易截截图软件、单文件、免安装、纯绿色、仅160KB

linux定时器

 
简介
这篇文章主要记录我在试图解决如何尽可能精确地在某个特定的时间间隔执行某项具体任务时的思路历程,并在后期对相关的API进行的归纳和总结,以备参考。
问题引出
很多时候,我们会有类似“每隔多长时间执行某项任务
”的需求,乍看这个问题并不难解决,实则并不容易,有很多隐含条件需要考虑,诸如:时间精度是多少?时间是否允许出现偏差,允许的偏差是多少,偏差之后如何处理?系统的负载如何?这个程序允许占用的系统资源是否有限制?这个程序运行的硬件平台如何?
为了便于分析,我们锁定题目为“每隔2妙打印当前的系统时间(距离UNIX纪元的秒数)
”。
基于sleep的朴素解法
看到这个题目,我想大家的想法和我一样,都是首先想到类似这样的解法:
#
include
<
stdio.
h>
int
main(
int
argc,
char
*
argv[
]
)
{
        while
(
1)
{
                printf
(
"%d\n"
,
time
(
NULL
)
)
;
                sleep
(
2)
;
        }
        return
0;
}
如果对时间精度要求不高,以上代码确实能工作的很好。因为sleep的时间精度只能到1s:
       #
include
<
unistd.
h>
       unsigned
int
sleep
(
unsigned
int
seconds)
;
所以对于更高的时间精度(比如说毫秒)来说,sleep就不能奏效了。如果沿着这个思路走下去,还分别有精确到微妙和纳秒的函数usleep和nanosleep可用:
      #
include
<
unistd.
h>
       int
usleep
(
useconds_t usec)
;
   Feature Test
Macro Requirements for
glibc (
see feature_test_macros(
7)
)
:
       usleep
(
)
:
_BSD_SOURCE |
|
_XOPEN_SOURCE >
=
500
      #
include
<
ti


相关文档:

Linux操作系统下的多线程编程详细解析(4)


   函数原型:
   
#include <pthread.h>
void pthread_cleanup_push(void (*rtn)(void *),void *arg);
    函数rtn是清理函数,arg是调用参数
void pthread_cleanup_pop(int execute);
 
 
    在前面讲过线程的终止方式,是正常终止还是非 ......

Linux 下的两个脚本

//videoserver
#!/bin/bash
#
# videoserver
#
# chkconfig: 3456 11 91
# description: videoserver
# Source function library.
. /etc/rc.d/init.d/functions
prog="videoserver"
start() {
# Start daemons.
echo -n $"Starting $prog: "
/video/videoserver/recordvideosvr /video/videoserver ......

linux下ddns实现动态dns实现域名解析(转载备忘)

呵呵一直一来在WINDOWS下有花生壳等众多的DDNS软件实现动态域名解析。但都是在WINDOWS下的。
今天找到了一个金万维公司提供的免费DDNS服务。主要是提供有LINUX下的安装客户端 
安装方法:得到金万维gnhostlinux动态域名Linux/Unix下客户端软件
wget http://www.gnway.com/download/gnhostlinux1.2.6.tgz 
......

Linux系统网络配置详解

       1、查看IP  Ifconfig
  2、配置IP的方法:
  A、 这种方法立即生效 但是重启将不会保存。(除了这个方法的其它方法都可以保存下来)
  Ifconfig eth0 1.1.1.1 netmask 255.0.0.0 up
  Ifconfig eth0:1 1.1.1.3 up  设置一个网卡多个IP的方法(在设置虚拟主机时有 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号