⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycron.h

📁 Cron的实现 UNIX 下设计编写中小型程序的能力
💻 H
字号:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>


#define MAXLINENO 100

int lineno,fd,txt_i,inline_i,i,pos,c,length;
char smin[5], shour[5], sday[5], smonth[5], sweek[5], contxt[300], oneline[60];
char nweek[5],nmonth[5],nday[5],nhour[5],nmin[5];
char currenttime[30];

struct
{ 
	char time[30];
     char cmd[30];
    
} line[MAXLINENO];

int find_task()
{
	fd = open("/j03031.cron",O_RDONLY,S_IROTH|S_IWOTH);
	lseek(fd,0,SEEK_SET);
	length=read(fd,contxt,300);
	inline_i=0;
	lineno=0;
	c=0;
	for(i=0;i<3;i++)
	{
		nweek[c++]=currenttime[i];              //读取当前时间
	}
	c=0;
	for(i=4;i<7;i++)
	{
		nmonth[c++]=currenttime[i];
	}
	c=0;
	for(i=8;i<10;i++)
	{
		nday[c++]=currenttime[i];
	}
	c=0;
	for(i=11;i<13;i++)
	{
		nhour[c++]=currenttime[i];
	}
	c=0;
	for(i=14;i<16;i++)
	{
		nmin[c++]=currenttime[i];
	}
		
	for(txt_i=0;txt_i<length;txt_i++)
	{
		oneline[inline_i++]=contxt[txt_i];
		if(contxt[txt_i]=='\n')
		{
			pos=1;
			c=0;
			for(i=0;i<inline_i;i++)
			{
				switch(pos)
				{
				case 1:
					if(oneline[i]=='*')
					{
						strcpy(smin,nmin);
						pos++;
						i++;
						break;
					}
					if(oneline[i]!=' ')
						smin[c++]=oneline[i];
					else
					{
						pos++;
						c=0;
					}
					break;
				case 2:
					if(oneline[i]=='*')
					{
						strcpy(shour,nhour);
						pos++;
						i++;
						break;
					}
					if(oneline[i]!=' ')
						shour[c++]=oneline[i];
					else
					{
						pos++;
						c=0;
					}
					break;
				case 3:
					if(oneline[i]=='*')
					{
						strcpy(sday,nday);
						pos++;
						i++;
						break;
					}
					if(oneline[i]!=' ')
						sday[c++]=oneline[i];
					else
					{
						pos++;
						c=0;
					}
					break;
				case 4:
					if(oneline[i]=='*')
					{
						strcpy(smonth,nmonth);
						pos++;
						i++;
						break;
					}
					if(oneline[i]!=' ')
						smonth[c++]=oneline[i];
					else
					{
						pos++;
						c=0;
					}
					break;
				case 5:
					if(oneline[i]=='*')
					{
						strcpy(sweek,nweek);
						pos++;
						i++;
						break;
					}
					if(oneline[i]!=' ')
						sweek[c++]=oneline[i];
					else
					{
						pos++;
						c=0;
					}
					break;
				case 6:
					line[lineno].cmd[c++]=oneline[i];
					break;
				}
			}
			sprintf(line[lineno].time,"%s %s %s %s:%s:00 2004\n",sweek,smonth,sday,shour,smin);
			inline_i=0;
			lineno++;
		}	
	}
	return 1;
}

int cmptime(char a[], char b[])	//only compare accurate to min, neglect seconds
{
	int i;
	for(i = 0;i<16;i++)
		if(a[i]!=b[i]) return 0;
	return 1;					//stands for exactly match
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -