我正在使用树莓派3,并希望使用localtime()获取本地计算机时间,但是我不知道如何处理。我的老师试图帮助我,但他甚至不知道该怎么做,并结束了代码的编写]
#include <stdio.h>
#include <time.h>
int main () {
time_t rawtime;
struct tm *info;
time( &rawtime );
info = localtime( &rawtime );
printf("Current local time and date: %s", asctime(info));
return(0);
}
然后只是编译成汇编,但是我认为这是一件复杂的事情,我想知道在臂装配中是否有更直接的本地时间查找方法。谢谢
首先,我正在简化整个过程以希望更好地回答您的问题;我希望我能说服您不要跳下悬崖,而不仅仅是提供无答案的答案:)
localtime()是C运行时库提供的函数,该库通常与C编译器一起提供。编译器从C / C ++代码生成可运行程序时执行的步骤之一是链接到C运行时库,因此,当您的程序需要调用函数时,它将知道在哪里可以找到dll / so文件,并进行加载。将其存储到内存中并控制所需的功能。大多数库加载和描述的步骤都是由操作系统通过众所周知的功能(例如(dlopen)[https://linux.die.net/man/3/dlopen]))执行的。
您可以编写所有样板文件,但是您必须更好地了解操作系统和C运行时,或者您可以只使用可信赖的c编译器并使代码正常工作。
如果任务的目标是学习更多关于ARM汇编语言和ARM处理器的信息,则您可能应该查阅处理器的数据表,并了解它在内部如何保留时间。
根据您的要求,您可以使用time syscall或gettimeofday调用(返回Epoch)来检索时间。