Score:0

ไม่สามารถใช้ / ค้นหา gettimeofday ในเคอร์เนล Ubuntu

ธง hu

ฉันใช้ 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? หรือผมคิดผิด...

TonyB avatar
za flag
คุณช่วยแสดงรหัสของคุณให้เราดูได้ไหม..?
TonyB avatar
za flag
ในระบบ ubuntu 20.04 ของฉัน sys/time.h ตั้งอยู่ที่นี่: ` /usr/include/x86_64-linux-gnu/sys/time.h` และมีความคิดเห็นต่อไปนี้ (ท่ามกลางคนอื่น ๆ ) เกี่ยวกับ gettimeofday() ... "ฟังก์ชันนี้ค่อนข้างล้าสมัย ผู้โทรส่วนใหญ่ควรใช้ time หรือ clock_gettime แทน"
rhg910 avatar
hu flag
ยอดเยี่ยม. ฉันจะลองในเย็นวันนี้และตอบกลับอย่างเป็นทางการในวันพรุ่งนี้
us flag
ส่วนที่ 2 ของหน้าคนใช้สำหรับการเรียกระบบจากพื้นที่ผู้ใช้ โดยทั่วไปแล้วฟังก์ชันดังกล่าวไม่สามารถใช้งานได้ภายในเคอร์เนลเอง โดยทั่วไป โมดูลเคอร์เนลจะใช้ได้เฉพาะ `` และ `` ส่วนหัว; `` ส่วนหัวไม่ได้เป็นส่วนหนึ่งของเคอร์เนล
us flag
https://stackoverflow.com/questions/50349294/getnstimeofday-is-an-implicit-declaration-in-system-call-when-linux-time-h-i แนะนำว่าคุณควรใช้ `getnstimeofday` จาก ``.
rhg910 avatar
hu flag
ฉันจะปิดโพสต์นี้เมื่อมีคำตอบหากฉันเห็นเครื่องหมายถูกที่อ้างอิงในหน้าช่วยเหลือ คำตอบของ TonyB ชี้ให้ฉันเห็นทิศทางที่ถูกต้อง เช่นเดียวกับ Nate

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา