לדלג לתוכן

פתרון גילוי יכולות

הטיפוס הבא יכול להחליף את Option בממשק ציבורי כאשר רוצים לשמור אבחון גם במקרה של אי זמינות. הוא מצטרף לקוד ההרצאה ומשתמש באותם imports.

enum Capability {
    Available(OwnedFd),
    Unavailable(io::Error),
}

השגיאה נשמרת לפני הדפסה או קריאה נוספת למערכת. במקרה של ENOSYS נחזיר Unavailable(error), ובמקרים אחרים נחזיר Err(error). התוצאה אינה מוכיחה אם הגורם הוא גרסת קרנל או מדיניות סינון, ולכן ההודעה צריכה לדבר על הסביבה שנבדקה.

כלי תצוגה יכול להמשיך עם PID ולהציג את המידע כתמונה רגעית. כלי שמתחייב לשמור זהות לאורך זמן חייב להשתמש במנגנון שמקיים את ההבטחה, או להיכשל במפורש. בדיקת זמן התחלה דרך /proc יכולה להפחית בלבול בחלק מהתכנונים, אבל רצף של בדיקה ואז שליחת אות לפי PID עדיין דורש ניתוח מרוץ ואינו תחליף אוטומטי ל־pidfd.