1. linux下C語言定時器(求高人指點)
可以用alarm信號做:
alarm(設置信號傳送鬧鍾)
相關函數 signal,sleep
表頭文件 #include<unistd.h>
定義函數 unsigned int alarm(unsigned int seconds);
函數說明 alarm()用來設置信號SIGALRM在經過參數seconds指定的秒數後傳送給目前的進程。如果參數seconds 為0,則之前設置的鬧鍾會被取消,並將剩下的時間返回。
返回值返回之前鬧鍾的剩餘秒數,如果之前未設鬧鍾則返回0。
#include<unistd.h>
#include<signal.h>
void handler() {
//這里讀跳變次數
}
main()
{
int i;
signal(SIGALRM,handler);//這里設置時鍾信號的響應函數
alarm(1); //這里設置每一秒鍾發送一個時鍾信號
}
2. 如何在linux上定時執行程序
你可以通過編寫一個
shell
腳本程序(在編程過程中會用到
linux
系統的
at
命令),就可以實現在指定的時間執行指定的任務。
3. 求linux下用c語言編寫的定時器程序
//一個示常式序。
#include<stdlib.h>
#include<unistd.h>
#include<signal.h>
#include<time.h>
#include<sys/time.h>
#defineN100//設置最大的定時器個數
inti=0,t=1;//i代表定時器的個數;t表示時間,逐秒遞增
structTimer//Timer結構體,用來保存一個定時器的信息
{
inttotal_time;//每隔total_time秒
intleft_time;//還剩left_time秒
intfunc;//該定時器超時,要執行的代碼的標志
}myTimer[N];//定義Timer類型的數組,用來保存所有的定時器
voidsetTimer(intt,intf)//新建一個計時器
{
structTimera;
a.total_time=t;
a.left_time=t;
a.func=f;
myTimer[i++]=a;
}
voidtimeout()//判斷定時器是否超時,以及超時時所要執行的動作
{
printf("Time:%d ",t++);
intj;
for(j=0;j<i;j++)
{
if(myTimer[j].left_time!=0)
myTimer[j].left_time--;
else
{
switch(myTimer[j].func)
{//通過匹配myTimer[j].func,判斷下一步選擇哪種操作
case1:
printf("------Timer1:--HelloAillo! ");break;
case2:
printf("------Timer2:--HelloJackie! ");break;
case3:
printf("------Timer3:--HelloPiPi! ");break;
}
myTimer[j].left_time=myTimer[j].total_time;//循環計時
}
}
}
intmain()//測試函數,定義三個定時器
{
setTimer(3,1);
setTimer(4,2);
setTimer(5,3);
signal(SIGALRM,timeout);//接到SIGALRM信號,則執行timeout函數
while(1)
{
sleep(1);//每隔一秒發送一個SIGALRM
kill(getpid(),SIGALRM);
}
exit(0);
}
4. linux 腳本編程 定時關閉和打開程序
1、利用crontab 制定定時任務
2、編寫定時關閉和打開程序的腳本或命令
3、crontab的用法
第1列分鍾1~59
第2列小時1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要運行的命令
下面是crontab的格式:
分 時 日 月 星期 要運行的命令或腳本
30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重啟apache
5. linux下怎麼定時執行腳本
配置定時任務或者說計劃任務,設定在你需要的時間執行腳本
寫好腳本,再通過crontab -e設置定時任務,然後通過crontab -l查看定時任務。
6. 如何編寫Linux定時處理程序
你必須要使用 Linux 系統提供的定時執行某一個程序的命令( at 命令)、以及熟練的 SHELL 編程,來實現 Linux 的定時處理程序。關於 at 命令的詳細使用,你必須要使用 man at 查看。
7. Linux怎麼設置定時程序每天早8至20點每10秒執行一次
了解一下linux的定時任務crod,寫個sh腳本,用定時任務去管理。
8. 在linux C編程中,定時器函數選擇與設置問題
試試alarm()與signal(),例子可以網上搜搜
NAME
alarm - set an alarm clock for delivery of a signal
SYNOPSIS
#include <unistd.h>
unsigned int alarm(unsigned int seconds);
DESCRIPTION
alarm() arranges for a SIGALRM signal to be delivered to the calling process in seconds seconds.
If seconds is zero, no new alarm() is scheled.
In any event any previously set alarm() is canceled.