GNU/Linux >> Belajar Linux >  >> Linux

Tetapkan tanggal dan waktu Sistem menggunakan C++ di Linux

Anda salah paham. settimeofday(2) mengatur waktu Epoch. yang merupakan tanggal dan waktu. Waktu baca(7)

Jadi jika Anda memulai dari string yang menyatakan tanggal, ubah string itu dengan strptime(3) menjadi struct tm lalu ubah itu menjadi waktu Unix dengan mktime(3) lalu masukkan ke settimeofday (yaitu tv_sec lapangan).

Namun, settimeofday memerlukan hak istimewa root dan saya percaya Anda biasanya harus menghindari memanggilnya (setidaknya pada komputer biasa yang terhubung ke Internet). Lebih baik atur beberapa layanan klien NTP di PC Linux Anda (mis. Jalankan ntpd atau chrony dan lebih umum baca bab sysadmin tentang menjaga waktu...). Lihat juga adjtimex(2)

BTW, tiba-tiba mengubah waktu sistem pada sistem multi-tasking -seperti Linux atau Windows- adalah operasi yang sangat berbahaya (karena akan mengganggu dan mengganggu banyak tugas sistem tergantung atau menggunakan waktu). Ada beberapa alasan bagus untuk melakukan itu (itu adalah ide yang sangat buruk secara umum). Jika Anda melakukannya, lakukan dengan sangat sedikit program &layanan yang berjalan (mis. Linux mode pengguna tunggal). Anda tidak boleh melakukannya dalam kode aplikasi biasa.


Saya menulis potongan kode ini untuk menyetel Tanggal dan Waktu di Linux.

#include <time.h>

struct tm time = { 0 };

time.tm_year = Year - 1900;
time.tm_mon  = Month - 1;
time.tm_mday = Day;
time.tm_hour = Hour;
time.tm_min  = Minute;
time.tm_sec  = Second;

if (time.tm_year < 0)
{
    time.tm_year = 0;
}

time_t t = mktime(&time);

if (t != (time_t) -1)
{
    stime(&t);
}

Perhatikan bahwa stime membutuhkan root hak istimewa.


Linux
  1. Otomatiskan Respons Menggunakan Harapkan dan Ekspektasi Otomatis di Linux

  2. Atur tanggal, waktu, dan zona waktu di server Linux

  3. Cara Melihat Tanggal dan Waktu Reboot Sistem Linux

  1. Menggunakan perintah timedatectl untuk mengubah waktu dan tanggal pada sistem Linux RHEL7

  2. Mendapatkan tanggal dan waktu startup sistem di Linux

  3. Tetapkan waktu relatif menggunakan baris perintah

  1. Cara menyetel tanggal dan waktu di AlmaLinux

  2. Cara Compile C, C++, Dan Java Menggunakan Terminal Di Linux

  3. 7 Contoh Perintah Tanggal Linux untuk Menampilkan dan Mengatur Waktu Tanggal Sistem