[Linux文件]每隔1分钟创建一个文件,并且每隔1秒将当前时间信息写入到文件
2017-11-18 16:18
543 查看
//这是一个在参数指定文件中连续写入当前时间的应用 //每隔1分钟在当前目录下建立一个新文件,通过tm_sec是否为0来判断 //文件以1秒为时间间隔,将当前的时间写入文件,然后回车换行 #include <fcntl.h> #include <stdio.h> #include <string.h> #include <sys/time.h> #include<time.h> int main(int argc,char *argv[]) { time_t filetime;//时间结构体对象 struct tm *p;//时间结构体指针 int temp,seektemp; //偏移量计算中间量 int fd; //文件描述符 char writebuf[50]; //写字符串缓冲区 char filenamebuf[10] = "File"; //文件名称缓冲区 char timebuf[6]; //时间缓冲区 struct timeval timenow,timeold; //时间变量 struct timezone timez; int j = 0; int writeCounter = 0; //写入计数器 if(argc!= 1) //如果参数错误 { printf("Plz input the corrcet file name as './exam39lseekFun filename string'!\n"); return 1; //如果参数不正确则退出 } gettimeofday(&timeold,&timez); //取得一个时间信息作为参考时间信息 time(&filetime);//获得时间参数 p = localtime(&filetime);//获得时分秒参数,以供创建新文件 sprintf(timebuf,"%02d%02d%02d",p->tm_hour,p->tm_min,p->tm_sec); strcat(filenamebuf,timebuf);//创建文件名 strcat(filenamebuf,".txt"); fd=open(filenamebuf,O_RDWR|O_CREAT,S_IRWXU);//创建文件 // fd = open(*(argv+1),O_RDWR|O_CREAT,S_IRWXU); //打开文件如果没有则创建 while(1) //进入主循环 { while(1) //1毫秒延时判断 { gettimeofday(&timenow,&timez); //获取当前时间参数 time(&filetime);//获得时间参数 p = localtime(&filetime);//获得时分秒参数,以供创建新文件 sprintf(timebuf,"%02d%02d%02d",p->tm_hour,p->tm_min,p->tm_sec); //printf("%d:%d:%d\n",p->tm_hour,p->tm_min,p->tm_sec); //时分秒信息放入timebuf缓冲区备用 //gettimeofday(&timenow,&timez); //获取当前时间参数 if((timenow.tv_sec - timeold.tv_sec) == 1) //如果到达一秒 { timeold = timenow; //更新保存的时间信息 printf("%d:%d:%d\n",p->tm_hour,p->tm_min,p->tm_sec); //printf("p->tm_sec:%02d\n",p->tm_sec); break; //1秒时间到,退出 } } if(p->tm_sec==0)//如果是0秒,到1分钟了 { char filenamebuf[]= "File"; strcat(filenamebuf,timebuf);//创建文件名 strcat(filenamebuf,".txt"); fd=open(filenamebuf,O_RDWR|O_CREAT,S_IRWXU);//创建文件 writeCounter=0; printf("new filename %s\n",filenamebuf); } time(&filetime); //获得当前时间参数 sprintf(writebuf,"%s",ctime(&filetime)); //将当前时间参数放入写缓冲区 printf("%s",&writebuf); //在屏幕上打印单签writebuf的内容 if(writeCounter == 0) //第一次写入 { temp = write(fd,writebuf,strlen(writebuf)); //写入数据 seektemp = lseek(fd,0,SEEK_CUR); //获得当前的偏移量 writeCounter++; //写入计数器++ } else { j = strlen(writebuf) * writeCounter; //获得偏移量 seektemp = lseek(fd,j,SEEK_SET); temp = write(fd,writebuf,strlen(writebuf)); writeCounter++; } } close(fd); return 0; }已上机测试
相关文章推荐
- 获取系统当前时间和创建TXT文件并写入信息
- [Linux文件]使用当前时间信息作为文件名来创建文件
- [Linux文件]每隔1秒将时间信息写入文件
- 创建一个文件,并写入当前时间
- 【OC学习-24】实例:创建一个文件并连续写入10次当前时间——巩固文件操作和熟悉定时器操作
- linux如何看一个文件夹内(包括子文件夹内)n天内修改了的文件,并且按修改时间排序(最下方是最新的)
- 利用头文件ctime,并且定义一个类,来实现输出当前时间
- 用shell脚本写出检测/tmp/size.log文件,如果存在显示它的内容,不存在则创建一个文件将创建时间写入
- 创建一个Date.text文件,获取当前的日期,将日期格式为“2013/02/14 05:20:00”的形式。然后一秒钟记录一次,将新的时间存入到文件中。
- linux学习笔记——将当前时间信息写入文件
- JAVA中如何向创建一个文件并且向其中写入内容
- C# SaveFileDialog +FileStream+StreamWriter 创建或者覆盖一个文件,并且写入
- stat 查看一个文件的修改时间,创建时间等信息的命令
- Linux创建crontab,定时将信息记录写入文件
- 文件流的写入,把文件写入到当前项目中的一个文件夹里,以当前系统时间的年月命名
- linux将当前时间写入文件
- ★实验 8-1 1. 创建一个守候进程。并为自己创建独立的日志文件。 2. 每隔 1s 向日志文件中写入如下信息: a) 未使用的内存大小(MemFree) 可以从/proc/meminf
- 创建txt文件并写入数据和获取当前的系统时间方式
- 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <cust
- linux 创建加入当前时间的文件和目录