COMPILE_ET(1) دستورهای کاربری COMPILE_ET(1)

compile_et - کامپایلر جدول کدهای خطای سیستم (error table compiler)

compile_et [ --version ] فایل...

دستور compile_et فایلی شامل اسامی کدهای خطا و پیامهای متناظر را به یک فایل منبع C تبدیل میکند. این فایل برای استفاده به همراه کتابخانه com_err(3) مناسب است.

نام فایل منبع باید با پسوند «.et» خاتمه یابد؛ این فایل شامل اعلانی است که نام جدول کدهای خطا (حداکثر تا چهار نویسه) را مشخص می‌کند:

error_table name

و پس از آن حداکثر تا ۲۵۶ ورودی به شکل زیر قرار می‌گیرد:

error_code name, " string "

و در پایان یک

end

برای نشان دادن انتهای جدول استفاده می‌شود.

نام جدول برای ساخت نام یک زیرروال (subroutine) به صورت initialize_XXXX_error_table به کار می‌رود که باید فراخوانی شود تا کتابخانه com_err بتواند جدول خطا را شناسایی کند.

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

نام‌های تعریف‌شده در جدول، در یک فایل سرآیند C (فایل header) همراه با دستورالعمل‌های پیش‌پردازنده قرار می‌گیرند که آن‌ها را به عنوان ثابت‌های عدد صحیح تا بزرگی ۳۲ بیت تعریف می‌کنند.

همچنین یک فایل منبع C تولید می‌شود که باید کامپایل شده و با فایل‌های شیء (object files) که به این کدهای خطا ارجاع می‌دهند، پیوند (link) داده شود؛ این فایل حاوی متن پیام‌ها و زیرروال مقداردهی اولیه است. نام هر دو فایل C از نام فایل منبع اصلی گرفته شده و پسوند «.et» با «.c» و «.h» جایگزین می‌شود.

نویسه «#» در فایل منبع به عنوان نویسه کامنت (توضیحات) در نظر گرفته می‌شود و تمام متن باقی‌مانده تا انتهای آن خط از فایل نادیده گرفته خواهد شد.

از آنجا که نسخه اصلی compile_et از یک تجزیه‌کننده بسیار ساده بر پایه yacc(1) استفاده می‌کرد، و این نسخه فعلی compile_et از ترکیبی از اسکریپت‌های awk/sed استفاده می‌کند، بازیابی خطای (error recovery) آن چندان مطلوب نیست.

com_err(3).

Ken Raeburn, "A Common Error Description Library for UNIX".

مه ۲۰۲۵ e2fsprogs