linux下使用c语言写一个简单的闹钟程序

最近总是要在某指定时间做某事情,显然我是不会告诉你是什么事情,之前一直都是把着点看着时间,这让我分心很多,所以一个闹钟是必不可少的了,一 直在用linux,对于linux下有什么样的闹钟程序并不了解,所以也不准备去网上下载安装了,虽然这会省下很多时间并且还都够找到一个很漂亮的闹钟, 但是恐怕这并不是像我这种立志要拯救世界的人的风格,毕竟对于一个立志要拯救世界的人来说,这种伸手的举动是绝对不可以接受的(好吧,玩笑就开到这 里………..),于是我准备自己动手写一个这样的程序,程序的功能很简单,就是要在指定的时间里做一样我要做的事情,当然它不是现实中的情 事,比如它会播放一首音乐什么的这样的情事,(我想你应该也猜到了),或者是弹出一个对话框提示时间到了,你该干吗干吗去,我是第一种,程序使用是 sleep这个函数将程序挂起,挂起的时间是你要何时提醒和当前时间的差,所以没有采用循环的方式每过多久检查一次时间,这样做虽然很儍但是却也很省资 源,在程序运行后直到时间到达的那一刻不占用CPU,内存资源占用在我这里也非常地小,仅有68KB,或许这个程序有什么未知的BUG,所以可能精确的不是太准,本程序在理想状态下可以精确到秒,我想应该是可以接受的了,下面给代码,别看我说了这么多,其实代码很简单

由 于考虑到在时间的安排上可能会出现跨越天数的情况,所以要时间设定的时候需要给出日期,而且本程序还缺乏很多功能,比如如果时间设定的界限超过一个月的 话,或者你设定的日期和当前日期刚好跨越了一个月份的话就会出错,本来这个程序时间设定界限只是24小时之内的,后来我改了下可以将界限改为一个月,但这 并不科学,因为这会出现很多问题,比如当月会有几天,当年会是否为润年等等情况需要解决,而显然这个需要更多的代码来解决,我目前没有这么做,以前我做过 一个日历程序,如果将此闹钟程序以一个功能模块加入到那个日历程序中的话这些问题便可以解决了,并且还可能添加更多的功能,以后在我学会了GUI编程后还 可能会给它做一个GUI界面,到时候便会从一个简单的命令行闹钟程序就成一个多功能的图形化闹钟程序了,当然这一切先等我学会GUI编程再说,现在请允许 我YY一下,如果你在设定时间的时候恰好遇到了比如说我想明天早上0:0:0秒时闹钟响起,而明天是10月1日,那么你可能要修改下代码来完成这个艰巨的 任务了,你只需要,当然这个特殊的例子可以通过在写日期时将日期写为31来解决,虽然9月并没有31天,如果今天是10月31日而你的时间要设定要11月 1日,那么人你就需要在代码中手动将日期设定为32,最后入一句,该程序是要linux下编写并运行的,所以要windows下无法使用,一方面本程序我 使用了依赖linux的函数另一方面也使用了linux下的mplayer播放器来播放一段音乐,可以看到我这里使用的是XXX.mp3,想换其它音乐自 己改写相关字符串,还有记得你的机器中要装有mplayer,一般linux发行版本中默认都会安装的
还有这个程序由于在检查设定的挂起时间是否有效之前将输入输出以及标准出错全部重定向,所以该程序在检查出时间设定有问题时会直接退出程序而无法给于相关提示,所以在程序运行过后你需要自己手动检查下是否已正确运行,下面给出图说明

从我们使用ps aux | grep 我们的程序名称来查看,我的程序已经正确运行了
下面是一张设定时间到的时候mplayer在播放我设定的音乐

以后有机会会将该程序重写,修改上面的不足并添加一些功能,加一个GUI界面并让该程序拥有可移性,让其在linux下以及windows下都可运行

–阅读次数(24)

发表评论

电子邮件地址不会被公开。

*