تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 08 خرداد 1402 |
سطح تمرین | سخت |
در این پست قصد داریم پروژه پیاده سازی linux shell سفارشی در c را به شما معرفی کنیم.
بیشتر بخوانید:تمرین نمایش کلمات تکراری
سوال: در این پروژه شما یک Shell Linux مخصوص خودتان را طراحی میکنید.
ایجاد این shell با برنامه نویسی زبان C انجام میشود.
با انجام این پروژه، با نحوهی عملکرد shell به خوبی آشنا خواهید شد.
جهت سادگی برنامهی شما نیاز نیست که redirection O/I و pipeline را مدیریت کند.
برنامهی شما باید 3 کامند in-built داشته باشد: cd، byeShell و helloUser.
کامندهای in-built از طریق forking اجرا نمیشوند بلکه فرآیند shell خودش آنها را اجرا میکند.
سایر کامندها باید در یک فرآیند فرزند اجرا شوند.
در گزارش نهایی، عالوه بر توضیحات ساختار و عملکرد کد، نتیجهی اجرای کد برای همهی کامندهای in-built و تعدادی کامند ساده مثلpwd، a- ls و … را قرار دهید.
در واقع shell شما یک حلقهی تکرار میباشد که عملکردی به صورت زیر دارد:
خط prompt مقابل را نمایش میدهد.“ <FarabiOSLabShell“
ورودی را دریافت کرده و آن را parse میکند.
کامند موجود در آن خط را اجرا میکند (باید چک شود که کامند واردشده آیا جزء کامندهای in-built میباشد یا خیر) و منتظر میماند تا کامند تمام شود.
این حلقه تکرار میشود تا کاربر کلمهی “byeShell “را تایپ کند.
هدرهای موردنیاز(میتواند در مواردی متفاوت باشد):
#include <string.h> #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <stdio.h> #include <readline/readline.h>
فانکشنها و call system های موردنیاز(میتواند متفاوت باشد):
fork(), execvp(), readline(), chdir(), waitpid(), printf(), perror(),
malloc(), free(), strcmp(), strok(), …
بیشتر بخوانید:تمرین نمایش اعداد با ارقام مشابه
دمو پروژه پیاده سازی linux shell سفارشی در c را مشاهده نمایید.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.