免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1462 | 回复: 8
打印 上一主题 下一主题

[C] 新手学C语言编程问题急、急、急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-30 11:40 |只看该作者 |倒序浏览
操作系统是AIX 4.3.3

我自己写了一个KSH程序,程序很简单,目的是让它在某个时间执行指定的动作,在其它时间不执行具体的动作,‘空循环’:
程序如下:
while true
do
x=`date +'%C%y%m%d%H%M'`
if [ $x -eq '200312301033' ]
then
/usr/bin/ls /dumpdata
break
else
continue
fi
done

程序执行都没有问题,(首先我不想用crontab ,at 命令),但就是发现用iostat 命令观察系统的性能时,%user,%sys的值的很高(即使没有其它用户的时候。),我想请问各位大虾,有没有办法既实现该功能,又能降低该%user,%sys值的C语言编程办法!如果有,该怎么写?请大力之招!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-12-30 11:53 |只看该作者

新手学C语言编程问题急、急、急!

怎么改我不知道,不过我知道空循环很占cpu的。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-12-30 12:02 |只看该作者

新手学C语言编程问题急、急、急!

while true
do
x=`date +'%C%y%m%d%H%M'`
if [ $x -eq '200312301033' ]
then
/usr/bin/ls /dumpdata
break
else
#这里sleep一定时间T
#并且sleep结束后判断当前时间-x>;=T,如果大于等于T,那么开始控操作,否则继续sleep(T)。
fi
done

论坛徽章:
0
4 [报告]
发表于 2003-12-30 12:49 |只看该作者

新手学C语言编程问题急、急、急!

94,不sleep你的机器资源不是都被它耗完了。

论坛徽章:
0
5 [报告]
发表于 2003-12-30 12:58 |只看该作者

新手学C语言编程问题急、急、急!

sleep

论坛徽章:
0
6 [报告]
发表于 2003-12-30 13:20 |只看该作者

新手学C语言编程问题急、急、急!

大侠们,用sleep是不行的,为什么呢?假如:
sleep之前的时间为:2003-12-30 10:32:59,如果sleep时间为100, 那么时间就超过了2003-12-30 10:33:00,我所希望的动作就没有执行啊,大哥门?

论坛徽章:
0
7 [报告]
发表于 2003-12-30 13:40 |只看该作者

新手学C语言编程问题急、急、急!

sleep 1不就行了么?你的时间总不会小于1秒吧?
或者,写个小程序,休眠毫秒级别的也可以啊
————————————如果仅仅是确定某个时候启动某个服务,可以设置系统定时策略啊,就没有必要自己写了,根本不会影响到效率的

论坛徽章:
0
8 [报告]
发表于 2003-12-30 19:50 |只看该作者

新手学C语言编程问题急、急、急!

sleep之后再调用一遍date,判断当前时间是否大于x不就行了吗?

论坛徽章:
0
9 [报告]
发表于 2003-12-31 12:16 |只看该作者

新手学C语言编程问题急、急、急!

谢谢各位大侠的支持,按照你们的方法已经处理了,再次感谢了!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP