Tag: 时间戳

仅在修改main.c时才从脚本调用make

问题:我想只运行一个脚本(例如run.sh),它将决定是否应该调用make (并在需要时调用它)然后运行可执行文件。 我的项目只有一个文件,即main.c. 然而,只是链接让我等了一点,我调试时不喜欢的东西,我渴望程序运行。 我希望这样的东西进入run.sh: #!/bin/bash if[ main.c has changed from the last time make was called] then make > compile.txt fi ./a.out 这样只有在修改main.c时才会调用make 。 通过修改,可以认为时间戳已更改(即使这可能不是实际标准)。 这可行吗? 如果是这样,我看到了这个答案 ,这让我觉得每次进入调用make的if语句的主体时,都会创建main.c的副本,或者存储文件的时间戳(在文件中)也许),以便下次脚本运行时,它将恢复该信息并检查if条件以查看时间戳是否不同。 那么,第二个问题是,如何做到这一点?

套接字读取和时间戳

当从Linux中的(非流)套接字读取时,我可以通过ioctl(sock, SIOCGSTAMP, &tv)获取最后收到的消息的(硬件生成的)时间戳。 但是,这会带来两个问题: 这是另一个系统调用(我每秒收到大约24000条消息,所以每个系统调用都要通知) 如果使用这种方法,我一次只能read()一条消息,然后是ioctl()来获取时间戳。 (如果我在read() call中读取多条消息,则以下ioctl仅生成最后一条消息的时间戳。) 我的问题是如何在尽可能少的系统调用中实现接收消息及其时间戳。 如果存在一个具有语义的系统调用,例如“读取待处理的消息及其时间戳”,那将是完美的。

可以存储时间戳的最小字节数是多少?

我想在C中创建自己的时间戳数据结构。 DAY(0 – 31),HOUR(0 – 23),MINUTE(0 – 59) 可能的最小数据结构是什么?

如何比较C中的两个时间戳?

我正在编写一个套接字程序来维护两个输入套接字的FIFO队列。 在决定要服务的队列时,程序从每个队列中提取最新的时间戳。 我需要一种可靠的方法来比较两个时间结构。 我尝试使用timercmp() ,但我的gcc版本不支持它,并且文档声明该函数不符合POSIX。 我该怎么办?

从时间戳中提取时间

我正在尝试从ISO8601时间戳中提取时间段。 例如,从下面的timstamp “0001-01-01T17:45:33″我想提取这部分”17:45:33” 。

将日期/时间转换为时间戳,反之亦然

我试图在C中实现两个简单的转换器,日期/时间到时间戳,反之亦然,没有任何依赖于时间库例程,如mktime等。 时间戳以秒为单位,日期/时间结构采用以下格式: unsigned char year:0到99(表示范围2000到2099) unsigned char month:1到12 unsigned char day:1到31 unsigned char小时:0到23 unsigned char分钟:0到59 unsigned char second:0到59 我想对dt2ts转换器有第二个意见(假设输入是合法的): unsigned int dt2ts(const dt_t* dt) { static unsigned short days[] = {0,31,59,90,120,151,181,212,243,273,304,334}; return ((((dt->year*365+dt->year/4)+days[dt->month-1]+dt->day)*24+dt->hour)*60+dt->minute)*60+dt->second; } 除此之外,我将非常感谢帮助完成ts2dt转换器: void ts2dt(unsigned int ts,dt_t* dt) { dt->second = ts%60; ts /= 60; dt->minute = ts%60; ts /= 60; dt->hour = […]

将unix时间戳转换为没有系统库的日期

我正在构建一个嵌入式项目,它显示从显示器上的GPS模块检索的时间,但我还想显示当前日期。 我目前有时间作为unix时间戳,而progject是用C语言编写的。 我正在寻找一种从时间戳计算当前UTC日期的方法,考虑到闰年? 请记住,这是针对没有FPU的嵌入式项目,因此模拟浮点数学,尽可能地避免它的性能。 编辑 在看了@R …的代码之后,我决定自己写一篇文章并提出以下内容。 void calcDate(struct tm *tm) { uint32_t seconds, minutes, hours, days, year, month; uint32_t dayOfWeek; seconds = gpsGetEpoch(); /* calculate minutes */ minutes = seconds / 60; seconds -= minutes * 60; /* calculate hours */ hours = minutes / 60; minutes -= hours * 60; /* calculate days […]

如何在c中为日志获取适当的时间戳?

我正在创建一个客户端 – 服务器应用程序。 我想做一些日志记录。 服务器在C中。现在我打印到终端的消息。 所以我可能只是将它复制到sprintf并添加时间戳。 我该怎么做那个时间戳? 它应该包括日期,小时,分钟,秒。

C编程语言中的时间戳

如何标记t1和t2两次并获得C中的毫秒差异?