لماذا هناك المزيد من الملفات / المصابيح مع نفس inode من عروض عدد المرجع؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

لقد كرصت مجلدا على وحدة تخزين واحدة، واسترجع قائمة بأسماء الملفات، والتعامل المرجعية وأرقام INODE، باستخدام

nsfilemanager attribilesofitematpath.

و NsDictionary FilesystemFilEnumberNumber و ObjectForkey: NSFILEREFERENCECOUNT

لسبب ما أحصل على نتائج مثل عدد مرجعية من 10، ولكن قائمة بأكثر من 10 ملفات مع نفس رقم INODE.

من الملاحظة هو أنني لا أشمل Symlinks في قائمتي، أنا فقط تسجيل ملف عند [Dict Filetype] == NSFileTypereGular

أي أفكار لماذا قد يكون هذا هو الحال؟

تحرير: Peter Hosey، أنا أكتب ODODE والمرجعية، كما يلي:

CLMFileManagedObj *clmf;
clmf = (CLMFileManagedObj *)[NSEntityDescription insertNewObjectForEntityForName:@"CLMFile" inManagedObjectContext:moc];

NSUInteger fsfn = [dict fileSystemFileNumber];
[clmf setValue:[NSNumber numberWithUnsignedInteger:fsfn] forKey:@"iNodeNumber"];
[clmf setValue:(NSNumber*)[dict objectForKey:NSFileReferenceCount] forKey:@"referenceCount"];

لاحظ أن السبب الذي يتم فيه كتابة سبب inodeNumber والإحالة بشكل مختلف بشكل طفيف هو أن [DICT] يقدم ملف filesystemFilEnumber (NSUINTEGER) FilesystemFilEnumber، بينما يجب استرجاع FileDeferEncecount باستخدام المفاتيح (وفقا لأي مساعدة، يمكنني العثور عليها على NSDictionary)

كلا خصائص كيان CLMFile INT 64. وعناية ما يمكنني رؤيته، يعتمد نوع NSUINTEGER على ما إذا كان تشغيل وضع 32 أو 64 بت، ولكن [NSNumber NumberWithunSignedIngerNeger] يقبل NSUINTEGER كوسيطة، لذلك أفترض أنه يتعامل مع الرقم بشكل صحيح في أي وضع.

لا أستطيع أن أرى أين كنت في مراقبة النشاط تقول ما إذا كان 32/64 بت. أفترض أن مهما افتراضي لمشاريع XCode 3.1.3.

من الممكن أن أفتقد شيئا هنا، حيث أنا جديد نسبيا في MAC / OBJ-C / XCODE / الكاكاو، لذلك سيكون موضع تقدير أي مساعدة / مؤشرات. مبرمج من ذوي الخبرة، ولكن ليس في هذه البيئة (على الرغم من التعلم بأسرع ما أستطيع ....)

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

المحلول

هل تبحث في وقت النسخ الاحتياطي في الوقت؟ هل هناك دليل مشارك؟

إذا كان الدليل A يحتوي على دلائل B1 و B2 التي تعتبر صلابة، فإن الملف الذي يحتوي على نفس INODE سيكون داخل كل من B1 و B2، ومع ذلك، يمكن أن يكون عدد المرفأ واحدا.

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