请问如何在dos下用c实现定时的文件拷贝(任何文件均可,后者是目录的拷贝)。急用!!解决问题者可加分!!
请问如何在dos下用c实现定时的文件拷贝(任何文件均可,后者是目录的拷贝)。
要纯dos的系统下,不要带windows的命令和库。谢谢各位哥哥姐姐了。
最好能动态生成目标文件的名称。应为要实现数据库的备份,所以要循环覆盖已有的文件。
问题点数:50、回复次数:13Top
1 楼milozy1983(Detective)回复于 2004-12-02 18:42:45 得分 5
用TSR修改1CH中断可否?Top
2 楼lfslfs5367(爱岗敬业)回复于 2004-12-03 09:10:12 得分 0
请问,如何在c下定时启动该程序。Top
3 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2004-12-03 09:22:39 得分 3
同意一楼,用时钟中断可以,不过现在什么地方还在用DOS啊,不解.Top
4 楼xdspower(杂食菜熊)回复于 2004-12-03 10:04:53 得分 5
楼主有的什么拼音,错误字太多了。
milozy1983(跳蚤侦探)的方法是可行的。TSR是系统驻留程序,可以实现定时完成定时执行的功能。Top
5 楼lfslfs5367(爱岗敬业)回复于 2004-12-07 08:39:31 得分 0
谢谢各位,可是我没接触过"用TSR修改1CH".请问哪里有介绍这个的资料????Top
6 楼0909424(浪子)回复于 2004-12-07 11:07:47 得分 4
高级C程序设计中或者汇编中有过详细的TSR解释Top
7 楼realee(Frankie)回复于 2004-12-07 11:45:04 得分 3
自己goole或者csdn找一下TSR比较多:)Top
8 楼lfslfs5367(爱岗敬业)回复于 2004-12-07 11:53:27 得分 0
还有一个条件忘了说了,就是在系统中还有另一个程序在运行,可以让这两个程序同时运行么.
我的这个程序一天只执行一次文件的拷贝.可以在执行时通过我的这个程序将那个程序关闭掉,但在没有到达定时的时间时要两个程序同时存在.能实现么?不知道我说的是否清楚....Top
9 楼snow810211(阳光)回复于 2004-12-07 12:01:08 得分 10
#include <stdio.h>
#include <string.h>
void main()
{
FILE *fp1,*fp2;
char ch[1024];
unsigned long ret;
char source[259];
char ming[5]={0};
char dest[259];
int n,i,j,t,k,len,mark,startnum,num;
printf("Please input the source file path and name :");
scanf("%s",source);
if((fp1=fopen(source,"rb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
len=strlen(source);
for(i=len-1;i>=0;i--)
{
if(source[i]=='.')
{
mark=i;
break;
}
}
for(j=mark,t=0;source[j];j++,t++)
{
ming[t]=source[j];
}
printf("Please input startnumber (1000~9999):");
scanf("%d",&startnum);
printf("Please input the number of copies :");
scanf("%d",&num);
for(k=startnum;k<(num+startnum);k++)
{
itoa(k,dest,10);
strcat(dest,ming);
if((fp2=fopen(dest,"wb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
rewind(fp1);
while(!feof(fp1))
{
ret = fread(ch,sizeof(char),1024,fp1);
fwrite(ch,sizeof(char),ret,fp2);
}
}
}
Top
10 楼lfslfs5367(爱岗敬业)回复于 2004-12-07 14:15:11 得分 0
谢谢楼上的兄弟,谁有关于TSR定时的代吗????Top
11 楼lfslfs5367(爱岗敬业)回复于 2004-12-08 13:40:27 得分 0
哪位哥哥能帮帮忙呀!!!!Top
12 楼icansaymyabc(学习与进步)回复于 2004-12-08 14:43:23 得分 20
实现是没问题的。
DOS下的常驻内存的程序(TSR)很容易写的。
写一个TSR程序接管时钟中断,这样做好后每一次时钟中断你的程序都会被调用,你就可以检查拷贝时间是否到了,时间到了就进行文件拷贝,时间没到就不做事。
关键难就难在DOS是不可重入的。你的TSR程序被激活时要检查此刻DOS是否被调用,如果被调用了你就不能做事。必须等到DOS没有被调用你才能进行文件拷贝。这一点很难做。你要小心编程。这一点不处理好你的程序100%导致死机。
Top
13 楼lfslfs5367(爱岗敬业)回复于 2004-12-09 10:51:57 得分 0
谢谢各位,我想我要使用其他的方法了.揭帖!!!Top




