sigaction

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در رایانش، sigaction تابعی است که در استاندارد پازیکس تعریف شده است و برنامه‌نویس می‌تواند به کمک آن تعیین کند که برنامه در هنگام دریافت کردن یک سیگنال از طرف سیستم‌عامل، چه عکس‌العملی از خود در برابر آن سیگنال نشان دهد. برنامه‌ها معمولا در هنگام دریافت کردن یک سیگنال، می‌توانند تابعی خاص را اجرا کنند که به آن روال وقفه‌گیر می‌گویند.

کلیات[ویرایش]

در سیستم‌عامل‌های شبه یونیکس و سیستم‌عامل‌های سازگار با استاندارد پازیکس، سیگنال‌ها یکی از روش‌های برقراری ارتباط بین فرایندی هستند. هنگامی که یک واحد اجرایی (فرایند یا ریسه) سیگنالی از طرف سیستم‌عامل دریافت می‌کند، باید با توجه به نوع سیگنال دریافتی، واکنش مناسبی از خود نشان دهد. (مثلا از داده‌ها روبرداری کند، به اجرا خاتمه دهد، چیزی را همگام کند و ...)

فراخوان سیستمی sigaction()‎ به منظور تعریف کردن رفتار برنامه در هنگام دریافت کردن یک سیگنال غیر رزرو شده در سیستم، استفاده می‌شود. برای انجام این کار، یک ساختار داده به فراخوان سیستمی sigaction()‎ ارسال می‌شود که این ساختار داده، در کنار برخی چیزهای دیگر، حاوی یک اشاره‌گر به تابعی است که این تابع باید در هنگام دریافت سیگنال اجرا شود (همانطور که گفته شد، به این تابع روال وقفه‌گیر گفته می‌شود). برخی از سیگنال‌ها از قبل در سیستم رزرو شده‌اند و برنامه نمی‌تواند رفتار پیشفرض آنها را تغییر دهد و این سیگنال‌ها مستقیما توسط سیستم اداره می‌شوند و برنامه در اداره کردن آنها نقشی ندارد. سیگنال SIGKILL از جمله سیگنال‌های رزرو شده است.


جستارهای وابسته[ویرایش]

پیوند به بیرون[ویرایش]

منابع[ویرایش]