可能会用到的代码块汇总

1、打印时间,精确到毫秒

#include <sys/timeb.h>
#include <time.h>
#include <stdio.h>
 
int main(void)
{
    struct timeb tTimeB;
    ftime(&tTimeB);//获取当前的秒数和毫秒数
    struct tm *tTM = localtime(&tTimeB.time);//将秒数转为时间格式
    printf("%04d-%02d-%02d %02d:%02d:%02d.%03d\n", tTM->tm_year + 1900, 
    tTM->tm_mon + 1, tTM->tm_mday, tTM->tm_hour, tTM->tm_min, tTM->tm_sec, 
    tTimeB.millitm);
 
    return 0;
}

2、打印时间,精确到秒

#include <stdio.h>
#include <time.h>
#include <utime.h>
 
int main()
{
    //1. 定义时间戳普通变量 
    time_t t_abc;
    //2. 通过time()函数,获取时间戳 
    time(&t_abc);
    //3. 定义日历指针变量 
    struct tm * tdata;
    //4. 通过localtime()函数,将时间戳转换为日历信息 
    tdata=localtime(&t_abc);
    //5. 通过asctime()函数,将日历信息格式日期的形式输出 
    //Tue Feb 28 15:14:38 2023
    puts(asctime(tdata));
    //5. 通过ctime()函数,直接将时间戳以格式日期的形式输出 
    //Tue Feb 28 15:14:38 2023
    puts(ctime(&t_abc));

    //	按照格式定义,自主选择格式化输出日期 
    char current_time_str[30];		 
    size_t size = strftime(current_time_str,30,"%Y:%m:%d %H:%M:%S",tdata);
    //2023:02:28 15:14:38
    printf("%s",current_time_str);

    return 0;
}

3、打印某个目录下的文件及文件夹

void fetchdir(char* path,void (*fcn)(char*))
{
    char name[256];
    struct dirent* stp;
    DIR* dp;

    // 打开目录
    if((dp = opendir(path))== NULL)
    {
        fprintf(stderr,"fetchdir error%s\n",path);
        return;
    }
    while((stp = readdir(dp)) != NULL)
    {
        if(strcmp(stp->d_name,".")==0 || strcmp(stp->d_name,"..")==0)
            continue;
        if(strlen(path)+strlen(stp->d_name)+2>sizeof(name))
        {
            fprintf(stderr,"fetchdir name %s %s too long\n",path,stp->d_name);
        }
        else
        {
            sprintf(name,"%s/%s",path,stp->d_name);
            fcn(name);
        }
    }
    closedir(dp);
}


void list_all_files(char *ptr, char *func, int line)
{
    struct stat sbuf;
    if(lstat(ptr,&sbuf)==-1)
    {
        fprintf(stderr,"lstat error%s\n",ptr);
    }
    
    // 判断是否是文件
    if((sbuf.st_mode & S_IFMT) == S_IFDIR)
    { 
        fetchdir(ptr,list_all_files);        
    }
    
    //printf("%ld %s\n",sbuf.st_size,path);   // 不是目录则是普通文件,直接打印文件名
    //printf("%s\n",ptr);   // 不是目录则是普通文件,直接打印文件名
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值