لینک کوتاه مطلب : https://hsgar.com/?p=3099

Handle چیست؟

ممکن نیست به دنیای برنامه‌نویسی وارد شده باشید و handle به گوش‌تان نخورده باشید. شاید با خود به فکر فرو رفته باشید که این handle چیست که در همه جا نام آن هست ولی تعریف آن نیست.

در زبان انگلیسی به دسته شمشیر یا قبضه آن handle می‌گویند. شما قبضه شمشیر را می‌گیرید و با آن به جایی ضربه می‌زنید. در برنامه‌نویسی همین گونه است شما handle را می‌گیرید، حالا این handle می‌توانید دسته هر چیزی باشد. تنها با این دسته می‌توانید به کارهای یا داده‌های بعدی که این شمشیر می‌زند دسترسی داشته باشید. تنها کسی که این شمشیر در اختیار داشته باشد با دسته آن می‌تواند به داده‌های بعدی که آن شمشیر فراهم می‌آورد در دست داشته باشد.

در ویندوز اشاره‌گر به حافظه هسته یک handle است. نمایه به برخی آرایه‌های داخلی هسته یک handle است.

خیلی‌ها اصرار دارند که تاکید کنند که handle اشاره‌گر به یک ساختار است. ولی در واقع handle بیشتر شبیه token است تا pointer.

کار handle ارجاع دادن به چیزهایی مثل فایل، منابع سیستم، حافظه و … است. در کل مبتنی بر زمینه این handle تعریف می‌شود.

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

در کل می‌توانیم handle ها را به عنوان اشاره‌گر به یک ساختار در نظر بگیریم. ولی نوع‌های متفاوتی از handle وابسته به مفهوم در محیط کامپیوتری استفاده می شود. برای مثال file handle داریم memory handle هم هست که مشابه به اشاره‌گر به یک ساختار است. پس این گونه می‌توانیم بگوییم که handle نوعی اشاره‌گر است اما سیستم عامل آزاد است که پیرامون حافظه‌ای که handle به آن ارجاع داده است حرکت کند.

در کتابخانه استاندارد زبان سی به طور خاص stdio.h ، فایل هندل‌ها اشاره‌گرها به ساختار داده استفاده شده توسط کتابخانه C است. شاید هم بتوانیم این گونه بگوییم که handle هر تکنیکی برای دسترسی به یک شی است.

بعضی‌ها هم اصرار دارند که یک handle اشاره‌گر به یک اشاره‌گر است.

پس اینجا نمی‌توان تعریف صریحی از handle ارائه داد چون وابسته به زمینه است و در آن زمینه باید گفت واقعا چه هست فقط می‌توانم بگویم که handle دسته شمشیر است. شمشیر فرایندها هستند و چیزی که ضربه می‌خورد شی‌ای است که از طرف شمشیر ضربه می‌خورد.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.