انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: learner:~$ در 19 امرداد 1403، 08:06 بظ
-
درود
میخوام مهارت برنامه نویسی خودم رو بالا ببرم و این فکر به سرم زد که چه کاری بهتر از خوندن کد منبع کتابخانه ها؟
برای همین گفتم برم توی /usr/include و بیام نحوه پیاده سازی کتابخانه های استاندارد زبان سی رو ببینم. اما هرچیزی که دیدم فایل سرآیند بود مثلا stdio.h (که اکثر همه فایل های سرایند دستورات پیش پردازنده هستند)خب قطعا یک فایلی به نام stdio.c بوده که پیاده سازی شده و تبدیل به یک فایل سرآیند شده. البته میخوام هرچی که میتونم نحوه پیاده سازی همه کتابخانه های موجود رو بخونم و یادبگیرم از همه مهم تر درک کنم.
ممنون میشم کمکم کنید و بگید چیکار کنم.
-
چون کتابخانه ها به صورت از پیش کامپایل شده هستند و شما با اضافه کردن پرونده های ضمیمهای باعث میشید الحاق گر برای توابعی که شما در کدتون استفاده کردید بره در کتابخانه ای که پروندهی ضمیمهای به اون اشاره میکنه بگرده و فقط از اون پروندهی باینری بخش اون توابعو به پروندهی اجراییمون اضافه کنه.
پرونده ی کتابخانهای توابع glibc در
/usr/x86_64-linux-gnu/libc.so.6/
وجود داره.
-
چون کتابخانه ها به صورت از پیش کامپایل شده هستند و شما با اضافه کردن پرونده های ضمیمهای باعث میشید الحاق گر برای توابعی که شما در کدتون استفاده کردید بره در کتابخانه ای که پروندهی ضمیمهای به اون اشاره میکنه بگرده و فقط از اون پروندهی باینری بخش اون توابعو به پروندهی اجراییمون اضافه کنه.
پرونده ی کتابخانهای توابع glibc در
/usr/x86_64-linux-gnu/libc.so.6/
وجود داره.
متوجه نشدم یعنی مثلا من بخوام نحوه پیاده سازی کتابخانه stdlib.h رو بخونم باید برم اونجا؟
-
متوجه نشدم یعنی مثلا من بخوام نحوه پیاده سازی کتابخانه stdlib.h رو بخونم باید برم اونجا؟
نه باید بری کد glibc را بارگیری کنی.
-
متوجه نشدم یعنی مثلا من بخوام نحوه پیاده سازی کتابخانه stdlib.h رو بخونم باید برم اونجا؟
نه باید بری کد glibc را بارگیری کنی.
خب کجاست اون مسیری که به من دادی همچین چیزی وجود نداره
-
زیری رو بارگیری کن و کدهای c. رو ببین.
https://ftp.gnu.org/gnu/glibc/glibc-2.40.tar.gz
خب کجاست اون مسیری که به من دادی همچین چیزی وجود نداره
احتمالا اشتباه نگارشی داره مسیرم.
-
پروندهٔ /usr/include/stdlib.h در بستهٔ libc6-dev موجوده. برای داشتن کد مبدأش میتونی این رو بزنی:
$ apt source libc6-dev