LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 842|回复: 2

[问题]如何让操作系统每隔一段时间就运行某个应用程序??

[复制链接]
发表于 2006-5-18 09:43:14 | 显示全部楼层 |阅读模式
在这里详细说明一下我的目的,给这个应用程序起名叫A,

1.  操作系统启动后加载运行 A
2.  A 执行一些任务,完成后就立刻把自己的执行权交还给操作系统
3.  过上一阵子(这个时间可以是固定的),操作系统又把执行权交给 A,但此时 A 必须重头被执行
4.  执行完后, A 又把执行权释放掉
5.  过一阵子,操作系统又执行 A
6.  .........如此往复

于是,A 一秒钟会被执行好多次。

这样做需要用到哪些关键的函数??需要哪方面的知识呢??

熊猫没学过操作系统,只对进程机制有一点点皮毛的概念,再深入的就不懂了,还望大家提点

谢谢
发表于 2006-5-18 12:15:01 | 显示全部楼层
1.提交给cron.不过每秒都要执行n次的话,这个不好实现。
2.写一个主程序一直运行,到每个规定的时间就生成一个子进程,用A的代码填写子进程的程序体部分.此时只有一个程序.
   或者在生成的子进程里执行exec("A"),这样的话,A作为一个单独的程序存在于磁盘上.
  以上需要用到的主要函数有fork,exec.关于定时,如果小于1秒的话,可以用select或poll来实现.请参考<Unix环境高级编程>的相关部分.
回复 支持 反对

使用道具 举报

发表于 2006-5-18 20:12:00 | 显示全部楼层
楼主的要求最好还是把程序设计成一个持续运行的结构比较好. 即使不想使用 fork 这样的函数, 简单地使用 nanosleep(usleep 也一样, 不过 man 中说 usleep 已经不再被建议使用) 来控制运行频率, 或者设定一个 timer, 由系统主动定时调用, 这都是可选的方法
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表