デフォルトでは、私のCアプリケーションは次のコマンドの出力を読み取ろうとします。
timedatectl
だから基本的に私は私のアプリケーションを通してRTC時間を読みたいと思います。だから私は同じ理由で私のアプリケーションから上記のコマンドの出力を読み取ろうとします。
O RTCを使用して時間を読む他の方法はありますか?
/dev/rtc0
どんな助けでも大変感謝します!
ベストアンサー1
ネイティブアクセス制御が必要な場合は、ファイルを開いた後に呼び出しを使用する必要が/dev/rtc0
あります。ioctl
マンページ)、例えば
#include <errno.h>
#include <fcntl.h>
#include <linux/rtc.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char** argv)
{
int rtc_fd = open("/dev/rtc0", O_RDONLY);
if (rtc_fd < 0)
{
perror("");
return EXIT_FAILURE;
}
struct rtc_time read_time;
if (ioctl(rtc_fd, RTC_RD_TIME, &read_time) < 0)
{
close(rtc_fd);
perror("");
return EXIT_FAILURE;
}
close(rtc_fd);
printf("RTC Time is: %s\n", asctime((struct tm*)&read_time));
return EXIT_SUCCESS;
}