中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[Linux文件]每隔1分鐘創建一個文件,并且每隔1秒將當前時間信息寫入到文件

發布時間:2020-04-01 10:55:11 來源:網絡 閱讀:1318 作者:銀河星君 欄目:編程語言
//這是一個在參數指定文件中連續寫入當前時間的應用
//每隔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;
}

已上機測試

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和硕县| 淮滨县| 黔东| 屏南县| 新津县| 中阳县| 昌图县| 马公市| 新安县| 天台县| 青河县| 新野县| 明溪县| 喀喇沁旗| 开鲁县| 焦作市| 沙雅县| 长葛市| 沐川县| 藁城市| 武陟县| 盐津县| 福海县| 沙雅县| 连南| 灌南县| 东乡县| 盘山县| 时尚| 曲周县| 綦江县| 井研县| 安阳市| 泸溪县| 临邑县| 山阴县| 称多县| 浦县| 阿城市| 通道| 南丰县|