নিম্নলিখিত কোড স্নিপেট:
struct timespec ts;
for (int x = 0; x < 100000000; x++) {
timespec_get(&ts, TIME_UTC);
long cTime = (long) time(NULL);
if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) {
printf("cTime: %ld\n", cTime);
printf("ts.tv_sec: %ld\n", ts.tv_sec);
printf("ts.tv_nsec: %ld\n", ts.tv_nsec);
}
}
এই আউটপুট উত্পাদন করে:
...
cTime: 1579268059
ts.tv_sec: 1579268060
ts.tv_nsec: 2527419
cTime: 1579268059
ts.tv_sec: 1579268060
ts.tv_nsec: 2534036
cTime: 1579268059
ts.tv_sec: 1579268060
ts.tv_nsec: 2540359
cTime: 1579268059
ts.tv_sec: 1579268060
ts.tv_nsec: 2547039
...
কেন মধ্যে অমিল cTime
এবং ts.tv_sec
? নোট করুন যে শর্তসাপেক্ষে পরিবর্তন করা থাকলে সমস্যা দেখা দেয় না ts.tv_nsec >= 3000000
। সমস্যা ন্যানোসেকেন্ডগুলি 3000000 এর চেয়ে ছোট হওয়ার উপর নির্ভর করে।
timespec_get()
? এটি কি সি বা সি ++? দেখে মনে হচ্ছে std::timespec_get
। উপযুক্ত ট্যাগ ব্যবহার করুন।
man
প্রবেশিকা দেখতে পেলাম না timespec_get
তাই আমি সিদ্ধান্তে উপনীত হলাম। বোধ হয়।