ฉันใช้ Ubuntu 20.10 กับเคอร์เนลซอร์ส 5.8.0-59.66
ฉันต้องการเวลาปัจจุบันของวัน (จากยุค) ภายในเคอร์เนล การใช้ RHEL 7.9 หรือ CENTOS 7 ฉันใช้ฟังก์ชัน gettimeofday() อย่างใดอย่างหนึ่ง
สรุป ดูเหมือนว่าเอกสารจะระบุฟังก์ชันที่มีอยู่ใน Ubuntu -
http://manpages.ubuntu.com/manpages/bionic/man2/gettimeofday.2.html
โดยภายในระบุว่ามีดังต่อไปนี้
#รวม <sys/time.h>
ไฟล์นี้หรือไดเร็กทอรี "sys" ดูเหมือนจะไม่มีอยู่ในแผนผังซอร์สเคอร์เนลของฉัน ถ้าฉัน "ค้นหา" ตรงเวลา h ฉันพบบางอย่างรวมถึง ~/include/linux/time.h แต่ไม่มีคำจำกัดความของฟังก์ชัน
ฉันพลาดอะไรไปหรือเปล่า หรืออาจมีวิธีที่ดีกว่าและ/หรือปรับปรุงเพื่อให้ได้เวลาในลักษณะของ gettimeofday?
มันทำงานได้ดีกับ mods เคอร์เนลอื่น ๆ ที่ไม่ใช่ Ubuntu ของฉัน แต่นี่เป็นประสบการณ์ครั้งแรกของฉันกับ Ubuntu
ฉันละเลยที่จะเพิ่มข้อผิดพลาดในการรวบรวม
ข้อผิดพลาด: การประกาศโดยปริยายของฟังก์ชัน âgettimeofdayâ
[-Werror=การประกาศฟังก์ชันโดยนัย]
1329 | gettimeofday(&เวลา);
รหัสที่ใช้ฟังก์ชันนี้คือ
struct tm เวลา;
gettimeofday(&เวลา);
local_time = (u32)(time.tm_sec );
โปรดทราบว่านี่ไม่ใช่รหัสที่แน่นอนในเวอร์ชัน RHEL และ Centos ฉันทำการเปลี่ยนแปลงเล็กน้อยตามข้อผิดพลาดของคอมไพเลอร์ เช่น time.tv_sec กลายเป็น time.tm_sec ดังนั้นจึงไม่ได้รับการพิสูจน์
อย่างไรก็ตามฉันคิดว่าประเด็นแรกไม่มีคำจำกัดความสำหรับ gettimeofday? หรือผมคิดผิด...