انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: نحوه ایجاد یک shared object (so)؟  (دفعات بازدید: 1830 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین jeremy28

  • Newbie
  • *
  • ارسال: 18
نحوه ایجاد یک shared object (so)؟
« : 25 خرداد 1389، 03:31 ب‌ظ »
سلام به همگی
 
من تازه برنامه نویسی توی لینوکس رو شروع کردم، در حال حاضر از اوبونتو نسخه 9.04 استفاده می¬کنم و اون روی Virtual Machine نصب کردم ولی ویندوز هاستم اکس پی هست.
توی محیط خط فرمانی کار می کنم، یعنی روی لینوکس SSH رو نصب کردم و توی ویندوز با PuTTY به لینوکسِ روی VM وصل می¬شم و دستورات رو توی پوتی می¬نویسم. یعنی توی پوتی با استفاده از vim برنامه نویسی می¬کنم.

می¬خوام برنامه¬هایی در حوزه IPC (InterProcess Communication) بنویسم و فعلا با shared memory شروع کردم!

من می¬خوام که یه shared memory (یا shm) ایجاد کنم و یه چند تا shared object (یا so) ساده درست کنم که به این shared memory دسترسی داشته باشند و مثلا یه so یک چیزی رو توی shm بنویسه و یه so دیگه اون رو از shm بخونه یا اینکه یه Table ای توی shared memory ایجاد کنم و so های دیگه بهش دسترسی پیدا کنن و بشه توی برنامه اینها رو مدیریت کرد و ...

توی اینترنت گشتم و دو تا مثال پیدا کردم که از هدر فایل shm.h توی لینوکس استفاده می¬کنن و با نام  shm_client.c و shm_server.c هستند که کد مربوط به  shm_server.c یه چیزی رو توی حافظه می¬نویسه و و کد مربوط به  shm_client.c اون رو می¬خونه که کدهاش در انتهای صفحه لینک زیر هستند:
http://www.cs.cf.ac.uk/Dave/C/node27.html#SECTION002700000000000000000ولی هنوز نمی¬دونم که درست کردن یه so ساده چه جوریه؟

یعنی مثالی رو در این زمینه پیدا نکردم، لطفا سورس کد ساده از نحوه ایجاد یه so رو واسم بذارید و راهنماییم کنید که چه طوری به طور همزمان چند تا so داشته باشم که اینها بتونن به یه shared memory دسترسی پیدا کنن و یه جوری بشه اینها رو مدیریت کرد.

باور کنید کلی گشتم ولی چیز به درد بخوری پیدا نکردم و ناچار شدم که اینجا بپرسم، لطفا کمکم کنید!!!

با تشکر

آفلاین fzerorubigd

  • Hero Member
  • *
  • ارسال: 758
  • جنسیت : پسر
  • گوگل دوست خوبیه، فقط باید ازش بپرسی
    • یادداشتهای بیت نیمسوز
پاسخ به: نحوه ایجاد یک shared object (so)؟
« پاسخ #1 : 25 خرداد 1389، 06:11 ب‌ظ »
در مورد IPC و کاری که میخوای انجام بدی،‌ میگم که زیاد ایده جالبی نیست که همه یه shared memory داشته باشن. اصولا shared object با این روش زیاد جور درنمیاد.
ولی برای ایجاد shared object  اینو ببین : http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

در حقیقت همه shared object ها بهتره مستقل باشن و اگه میخوای اطلاعاتی رو بینشون به اشتراک بگذاری از طریق آرگومان توابع اینکارو انجام بدی،‌ اگه حجم این اطلاعات زیاده، باز هم میشه از طریق structure اینکار رو انجام داد. مثلا MySQL یه نوع داده داره به اسم MYSQL که همه اطلاعاتی که لازم داره به رد و بدل شدن از طریق این انتقال پیدا میکنه.

آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
پاسخ به: نحوه ایجاد یک shared object (so)؟
« پاسخ #2 : 27 خرداد 1389، 05:39 ب‌ظ »
http://www.tldp.org/HOWTO/Program-Library-HOWTO/

فکر کنم منظ.رتون اینه