我想询问是否有任何方法可以在每30秒后打开一个文件进行阅读。就像,我想插入一个时钟,我每隔30秒就调用一次文件打开功能。
由于
答案 0 :(得分:2)
您可以使用alarm()定期运行代码。
答案 1 :(得分:1)
我不太确定你的程序在30秒内做了什么。但是如果你只是想对你的文件做一个简短的操作并等到下一个30秒,那么你可以在循环中运行这些操作并休眠30秒:
#include <unistd.h>
#include <stdio.h>
int main( int argc, char *argv[] ) {
while( true ) {
FILE* myFile = fopen( "foo.txt", "r" );
// do whatever you like with your file.
fclose( myFile );
// sleep for 30 seconds and then open the file again.
sleep( 30 );
}
}
如果你想在这30秒内做很多其他的计算,你应该考虑多线程,但这是另一个主题; - )
答案 2 :(得分:1)
要完成Sjoerd的回答,有可能:
#include <unistd.h>
#include <signal.h>
#define FREQ 30
void sig_handler(int signum) {
// do whatever you want every FREQ seconds
//reenable the timer
alarm(FREQ) ;
}
int main() {
signal(sig_handler, SIGALRM) ;
//enable the timer
alarm(FREQ) ;
while(1) {
//do whatever you want between signals
}
}
它似乎适用于我的快速测试
答案 3 :(得分:-1)
没有任何理由说明为什么不能这样做。它不仅仅是打开文件,你可以在一定间隔后做任何你想做的事情。有几种方法可以实现它,即使使用linux提供的服务也是如此。
您可能希望添加一些关于您想要实现的内容的更多细节。