Articles of 时间戳

如何获得Linux内核的时间戳?

int netif_rx(struct sk_buff *skb) { if(skb -> stamp.tv_sec ==0) do_gettimeofday(&skb->stamp); } 上面的api是接收方api,它从发送方接收数据。 我想计算一下接收数据的时间并将其存储在缓冲区中。 在2993行的上面的api可以在内核源代码中find:/linux/net/core/dev.c 但我得到错误:作为结构sk_buff没有成员命名邮票。 http://lxr.free-electrons.com/source/include/linux/skbuff.h有人可以帮我:如何获得Linux内核的时间戳。 后来我把我的代码改为: int netif_rx(struct sk_buff *skb) { if(skb -> tstamp.off_sec ==0) do_gettimeofday(&skb->tstamp); } 现在我得到的错误是:ktime_t没有名为“tv_sec”的memeber。 结构timeval但参数的typesunio ktime_t。

时间戳输出数据包

我试图得到传出数据包的准确时间戳(使用原始套接字发送)。 根据Linux/Documentation/networking/timestamping.txt ,“对于发送时间标记,发出的数据包会循环回到套接字的错误队列中,并附上发送时间标记,可以用recvmsg(flags = MSG_ERRQUEUE)接收。 ”。 不幸的是, recvmsg总是在原始套接字上调用时返回-1 (使用socket(PF_INET, SOCK_RAW, IPPROTO_RAW)创build, SO_TIMESTAMP使用setsockopt设置为1 )。 我究竟做错了什么? 是否有一个更好的方式获得一个传出数据包的准确时间戳? 附录(信息): 我也尝试从通过UDP套接字发送的数据包(源代码如下)获取时间戳,并且recvmsg返回-1 :错误是“资源暂时不可用”( EAGAIN )。 附录(源代码): #include <arpa/inet.h> #include <linux/net_tstamp.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> void die(char* s) { perror(s); exit(1); } int main(int argc, char* argv[]) { char* destination_ip = "10.0.0.1"; int destination_port = […]

在linux中获取文件的最后修改时间

我正在开发一个C程序,我需要获取文件的最后修改时间。 程序做的是循环遍历目录中的每个文件,当find一个特定的文件时,它调用另一个函数来检查文件的最后修改时间。 在目录中有一个mylog.txt.1 , mylog.txt.2和mylog.txt.3等等。当我使用ll命令列出linux中的目录时,我可以看到mylog.txt.1和mylog.txt.2 5月4日修改了2个,5月3日修改了mylog.txt.3 。 然而,当程序检查这些文件时,它总是在5月3日返回。 以下是我正在使用的代码。 void getFileCreationTime(char *filePath) { struct stat attrib; stat(filePath, &attrib); char date[10]; strftime(date, 10, "%d-%m-%y", gmtime(&(attrib.st_ctime))); printf("The file %s was last modified at %s\n", filePath, date); date[0] = 0; } 我已经尝试了st_ctime所有不同的变体,即st_mtime和st_atime但它们都返回3月5日。 感谢您的任何帮助,您可以提供。

设置创build或更改时间戳

使用utimes , futimes , futimens等等,可以在文件上设置访问和修改时间戳。 修改时间是文件数据最后一次更改的时间。 同样,“ctime”或更改时间,是文件上的最后一次属性(如权限)发生更改。 (Linux / POSIX维护三个时间戳:mtime和ctime,已经讨论过了,'atime'或者访问时间。) 有没有设置更改时间戳的function? (其中“更改”是属性修改或“ctime”, 而不是修改时间“mtime”)。(我理解想要更改更改时间戳的循环性质,但认为归档软件 – 这将是很好的恢复文件因为它是。) 有创build时间戳的function吗? (我知道ext2不支持这个,但是我想知道Linux是否支持这种文件系统。) 如果不可能,背后的理由是什么?

如何重命名以Unix时间戳开头的多个文件 – imapsync问题

我没有从imapsync的脚本重命名maildir文件名工作。 : – / 所以我需要的是: 我有一个邮件文件夹与数以千计的邮件。 在将这些电子邮件导入到我的新服务器之后,电子邮件的文件名将创builddate的文件名称作为Unix时间戳,但是文件的创builddate标志是来自电子邮件的正确接收date。 一个文件的ls -l如下所示: -rw-r–r– 1 popuser popuser 1350432 2013-03-16 07:22 1363563215.M562903P29332V0000000000000802I0000000000AEA46B_527.my-domain.org,S=1350432:2,S 所以脚本要做的是:1)读取文件的创builddate/时间(我find了命令 stat -c %y filename 做这个) 2)将date/时间从1)转换为Unix时间戳 date -d "2013-03-17 11:19:01.000000000 +0100" "+%s" 3)删除文件名的前10个数字(错误的时间戳),而是从2)中删除时间戳 4)为特定目录中的所有文件执行此操作 我是Linux脚本中的newby,任何人都可以用这个脚本来帮助我吗? 谢谢!

Windows文件共享时间戳

假devise算机A在由计算机B托pipe和共享的文件夹中创build一个文件。 使用标准的Windows文件共享,该文件的“创build”时间戳是由计算机A还是计算机B的时钟设置的?

用批处理脚本中的时间戳生成唯一的文件名

在我的.bat文件中,我想根据date时间为文件/目录生成一个唯一的名称。 例如 Build-2009-10-29-10-59-00 问题在于%TIME%不会执行,因为它包含文件名非法的字符(例如':')。 在batch file中是否有像'tr'的东西? 任何其他的想法如何解决这个问题(除了批解释器不需要额外的命令行工具)?

修改文件创build/访问/写在Windows下的Python与时间戳

我试图find一个简单的方法来修改窗口下的文件时间戳使用python,但没有太多明确的信息在networking上。 search一段时间后,我得到了一个解决scheme 为了缩短search他人,代码在这里。 这可能会做得更容易,更美丽,但它的作品。 我没有解决的唯一问题是夏天 – 冬天的时间问题,即如果在夏天的时候,结果相差一个小时。 也许有人可以添加更正? from win32file import CreateFile, SetFileTime, GetFileTime, CloseHandle from win32file import GENERIC_READ, GENERIC_WRITE, OPEN_EXISTING from pywintypes import Time import time import sys import os if len(sys.argv)<5: pfile = os.path.basename(sys.argv[0]) print "USAGE:\n\t%s <createTime> <modifyTime> <accessTime> <FileName>\n" % pfile print "EXAMPLE:" print '%s "01.01.2000 00:00:00" "01.01.2000 00:00:00" "01.01.2000 00:00:00" file' […]

使用Windowsbatch file从FTP服务器下载今天的文件

我正尝试将XML文件从FTP位置复制到应用程序服务器 – 但不是所有文件。 新文件在ftp位置每隔半小时存档一次。 我只需要传输基于时间戳和date的新文件。 我正在使用下面的2个文件从FTP位置复制所有文件。 batch file: ftp -i -s:D:\ftp_commands.txt -n <host name> 文本文件(ftp_commands.txt): user <username> <password> cd <source path> lcd <destination path> mget * bye 任何人都可以请帮我复制基于时间戳或date的文件?

Unix版本的Windows touch命令从文件名部分修改文件的修改date

我有这个bash脚本循环通过当前目录中的文件 ,并从文件名中提取date部分 ,然后使用(Unix) touch命令修改(或更新)该文件的修改date ( mtime )到该date。 文件名示例 Electric company name – bill – 2014-03-22.pdf Bash脚本: 我将这个bash脚本保存为_save_file_mtime_from_filename.sh (将chmod +x添加到该脚本中)并放入要更改文件修改时间的目录中。 然后从命令行运行它。 #!/bin/bash CURRENT_DIR=$(dirname $_) cd $CURRENT_DIR for f in * do # Strip the file extension d=${f%.*} # Strip the last 10 characters d=${d:${#d}-10} # Check the format / mask if [[ $d = ????-??-?? ]] […]