תוכן עניינים:
הגדרה - מה המשמעות של תקלת פילוח (Segfault)?
תקלה בפילוח (segfault) היא שגיאה המוחזרת על ידי חומרה עם הגנת זיכרון המספרת למערכת ההפעלה שהתרחשה הפרת גישה לזיכרון. מערכת ההפעלה מגיבה בדרך כלל על ידי כך שהיא מספרת על התהליך הפוגע על השגיאה באמצעות אות ואז מערכת ההפעלה מבצעת פעולה מתקנת כלשהי. זה קורה מכיוון שתהליך או תוכנית מנסים לגשת לזיכרון שלא מוקצה לו.
תקלה בפילוח ידועה גם כפרת גישה.
Techopedia מסביר את תקלת הפלח (Segfault)
תקלת פילוח נגרמת לרוב כתוצאה משגיאות בתכנות של תהליך או יישום בהם התוכנית מובלת לזיכרון גישה שלא הוקצה עבורה אלא לתוכנות אחרות או למערכת עצמה. אסור לתהליך לגעת בזיכרון שלא שמור לו, מכיוון שהוא חייב תמיד לבקש זיכרון לפני השימוש בו. לכן, כאשר הוא נוגע בטעות בזיכרון שלא מוקצה לו, מתרחשת הפרת גישה.
Segfaults יכולות להיגרם גם כתוצאה מפונקציה רקורסיבית, שיכולה לנצל את כל שטח הערימה שהוא מוקצה ולעמוד במהירות בזיכרון שלא מוקצה לו. במערכות מסוימות זה נחשב לצפת ערימה, אך עבור אחרים זו פשוט סוג של הפרת גישה.
ניתן לטפל בתקלת פילוח בתהליך באמצעות מטפל איתותים בהתאמה אישית, אך לעיתים קרובות מדובר בטיפול האותות המוגדר כברירת מחדל של מערכת ההפעלה, אשר בדרך כלל מסתיים בכך שהתהליך הפוגע מסתיים בצורה לא תקינה, המכונה התרסקות או שמערכת ההפעלה מכריחה מזבלה ליבה. .