在我看来,我不知道在1970年之前存储日期的机制.1作为Unix时间戳.由于那个日期是Unix"时代",这并不奇怪.
但是 - 即使它不是为此而设计的 - 我仍然希望以Unix格式存储过去的日期.
我需要这个是有原因的.
所以我的问题是:如何让unix-timestamps包含"无效"但仍然有工作日期?存储负数秒会有效吗?我们甚至可以在unix时间戳中存储负数秒吗?我的意思是不是没有签名?
此外,如果我是正确的那么我只能存储日期,因为它1901. dec. 13 20:45:52可以在任何方式进一步延伸回历史?
大家好。
所以我正在学习汇编。
按照我通常学习的任何新语言的学习步骤,我已经到达了使用程序集的网络。
遗憾的是,情况不太好,因为我在第 0 步几乎失败了,这将获得一个可以开始通信的套接字。
汇编代码应大致等于以下 C 代码:
#include <stdio.h>
#include <sys/socket.h>
int main(){
int sock;
sock = socket(AF_INET, SOCK_STREAM, 0);
}
Run Code Online (Sandbox Code Playgroud)
(让我们忽略它现在没有关闭套接字的事实。)
所以这是我到目前为止所做的:
在某些架构上——例如 x86-64 和 ARM——没有 socketcall() 系统调用;相反,socket(2)、accept(2)、bind(2) 等实际上是作为单独的系统调用实现的。
然而,在系统调用的原始列表中没有这样的调用——据我所知socket(),accept()、bind()、listen()、 等是来自libnet而不是来自内核的调用。这让我很困惑,所以我决定编译上面的C代码并使用strace. 这产生了以下结果:
套接字(PF_INET,SOCK_STREAM,IPPROTO_IP)= 3
虽然这并没有让我更接近于知道它是什么socket() ,但它确实解释了它的论点。对于女巫,我似乎没有找到合适的文档(再次)。我认为PF_INET,SOCK_STREAM,IPPROTO_IP就在被定义<sys/socket.h>,但我grep似乎对他们-ing没有发现使用的东西。所以我决定通过gdb与disass main查找值一起使用来实现它。这给出了以下输出:
汇编代码转储功能主要:0x00000000004004fd …