الحصول على inode من المسار في نواة لينكس

StackOverflow https://stackoverflow.com/questions/600877

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أحاول حاليا للحصول على inode لمسار معين في وظيفة النواة. كل ما لدي المتاحة هو اسم المسار الكامل. لقد حاولت محاولات مثل:

user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);

ولكن dentry في هذا الطريق معين هو غير صالح، ويبدو أن تتحول. ثم فكرت القانون الأساسي ربما عصيب () والحصول على عدد inode من ذلك. مع ذلك، أن يعطيني سوى عدد، وليس inode البنية. أنا لا أعرف من وسيلة لتحويل عدد inode إلى inode دون الاستيلاء على inode الحالية وعبور قائمة كاملة ال inode. وأنا لا أعرف حتى إذا كان ذلك من شأنه أن يعمل. لكنني بالتأكيد لا نريد ان نفعل ذلك.

هل هناك أي طريقة بسيطة للحصول على inode البنية من شار * مسار داخل النواة؟

هل كانت مفيدة؟

المحلول

وليس هناك طريقة سهلة منذ inode البنية هو جزء من نواة وأنت في الفضاء المستخدم. كل هذا يتوقف على تنفيذ الملفات معين. هل أنت متأكد من أن المعلومات في بنية القانون الأساسي ليست كافية لتلبية الاحتياجات الخاصة بك؟

وعلى أي حال، هذا الرابط قد يساعد.

نصائح أخرى

وstat() سوف تعطيك inode من ملف في حقل "st_ino".

عذرا، سوء الفهم الأولي لهذه المسألة.

إذا كنت ترغب في هيكل inode الفعلي داخل النواة، وأنا واثق جدا ان النواة نفسها لا يدخلون صفيف أو قائمة يبحثون عن عدد inode (ما لم يكن قائمة صغيرة جدا). منذ رمز إلى نواة متاحة للجمهور، يجب أن تكون قادرا على معرفة كيف لا، ثم تفعل الشيء نفسه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top