win&liunx下C语言获取时间戳方法(秒级,毫秒级)

        最近呢,项目需要获取时间戳,作为数据包中的内容。因此才有了此篇。

        我们通常所用的时间戳呢,是Unix时间戳。Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

有个实用的时间戳获取工具:

Unix时间戳(Unix timestamp)转换工具 - 站长工具Unix时间戳转换可以把Unix时间转成北京时间。https://tool.chinaz.com/Tools/unixtime.aspx


        本篇教程呢,就是在window和liunx下要用C语言实现时间戳的获取,以最简单的方法。

Windows

#include <stdio.h>
#include <time.h>

int main()
{
    time_t tt;
    struct tm *st;
    time(&tt);
    printf("%ld\n", tt);

    return 0;
}

本段代码实现了秒级时间戳,但是笔者发现,Windows下要获取毫秒并不简单。

对于毫秒时间戳,实际上也就是秒级时间戳后面加三位数(毫秒数)。因此,只要获取到当前时间的毫秒数就行了。

于是乎就是想办法获取毫秒数了。

#include <stdio.h>
#include <time.h>
#include <Windows.h>

int main()
{
    SYSTEMTIME t1;
    GetSystemTime(&t1);
    printf("%ld\n", (int)t1.wMilliseconds);

    return 0;
}

本段代码实现了对毫秒数的获取。

因此将以上代码进行一个整合,即可获取到毫秒级时间戳:

#include <stdio.h>
#include <time.h>
#include <Windows.h>

int main()
{
    time_t tt;
    struct tm *st;
    time(&tt);
    printf("%ld", tt);

    SYSTEMTIME t1;
    GetSystemTime(&t1);
    printf("%ld\n", (int)t1.wMilliseconds);

    return 0;
}

LIUNX

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    struct timeval tv;
    gettimeofday(&tv, NULL);
    
    printf("second: %ld\n", tv.tv_sec); // 秒
    printf("millisecond: %ld\n", tv.tv_sec * 1000 + tv.tv_usec / 1000); // 毫秒

    return 0;
}

简评

        怎么看liunx都要简单很多,可能这是windows的某点缺陷吧。

        既然要传输数据,那么接下来只需要将这些整形数据转变为字符串数据就行了,这部分就留给同学们自行发挥咯。

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux下,可以使用以下几种方法获取文件夹下的文件名: 1. 使用ls命令:可以使用ls命令来获取指定文件夹下的文件名。例如,要获取当前目录下的所有文件名,可以执行命令:`ls`。要获取指定目录(如/home/user/Documents)下的所有文件名,可以执行命令:`ls /home/user/Documents`。使用ls命令还可以使用相关选项,如`ls -l`可以显示文件的详细信息,`ls -a`可以显示包括隐藏文件在内的所有文件。 2. 使用find命令:可以使用find命令来递归地查找指定目录下的文件,并获取文件名。例如,要获取当前目录下的所有文件名,可以执行命令:`find .`。要获取指定目录下的所有文件名,可以执行命令:`find /home/user/Documents`。 3. 使用ls命令配合管道和其他命令:可以使用ls命令结合管道和其他命令来进一步处理获取的文件名。例如,要获取当前目录下的所有文件名,并将其存储到一个文件中,可以执行命令:`ls > filenames.txt`。要获取指定目录下的所有文件名,并将包含特定字符串的文件名输出到屏幕上,可以执行命令:`ls /home/user/Documents | grep "string"`。 4. 使用shell脚本编程:还可以使用shell脚本编程来获取文件夹下的文件名。可以使用for循环结合通配符来遍历文件夹,并获取文件名。例如,以下是一个获取指定目录下文件名的示例脚本: ```shell #!/bin/bash directory="/home/user/Documents" for file in $directory/*; do echo $(basename "$file") done ``` 以上是几种常见的方法,可以根据具体需求选择合适的方法获取文件夹下的文件名。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星羽空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值