نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین کدهای-متفرقه
فایل sys/stat.h دارای تعدادی ماکرو است که برای پیدا کردن فرمت فایل بسیار مفیدند. معمولا ابتدا فیلد st_mode
از ساختاری که سیستمکال stat برمیگرداند را با ثابت S_IFMT
«اَند» بیتی میکنیم و سپس نتیجه حاصله را با مقادیر تعریف شدهای که هر کدام معرف یک نوع فایل است مقایسه میکنیم.
دانستن محتوای این ماکروها خالی از لطف نیست. این برنامه ساده این موضوع را بررسی میکند.
نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین کدهای-متفرقه پیاده-سازی-برنامه-های-لینوکس
در این پست عملیات login به سیستم را با زبان C در لینوکس پیاده سازی میکنیم.
نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین کدهای-متفرقه پیاده-سازی-برنامه-های-لینوکس
دستور lastlog(8) در سیستمهای شبه یونیکس زمان آخرین لاگین کاربر در سیستم را نشان میدهد. این اطلاعات در فایلی به نام lastlog و به صورت struct در آفست خاصی از آن ذخیره شده است. به عنوان مثال اطلاعات کاربری با USERID=1000
در آفست زیر قرار دارد:
off_t offset = 1000 * sizeof(struct lastlog);
در این پست میخواهیم این دستور را با استفاده از زبان C در لینوکس پیاده سازی کنیم.
نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین کدهای-متفرقه پیاده-سازی-برنامه-های-لینوکس
در این پست دستور tty(1) را با استفاده از زبان C در لینوکس پیاده سازی میکنیم.
نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین کدهای-متفرقه پیاده-سازی-برنامه-های-لینوکس
در این پست حالت پیش فرض دستور who(1) را با استفاده از زبان C پیاده سازی میکنیم.
نوشته شده به وسیله: Mohsen در 2023-05-08 تحت عناوین groff کدهای-متفرقه
چگونه میتوان جدول بالا را در ترمینال ایجاد کرد؟ احتمالا راههای زیادی برای ساخت آن وجود دارد. یکی از این راهها استفاده از groff است.
En este post os he preparado más de 4500 frases españolas para practicar y mejorar su nivel de español. Las he extraído de un libro juvenil. Espero que sea útil.
در این پست بیشتر از 4500 جملهی اسپانیایی که از یک کتاب استخراج کردهام را برای تمرین و بهبود سطح کسانی که مانند خودم علاقمند به زبان اسپانیایی و دانشآموز این زبانند قرار میدهم. امیدوارم که مفید باشد.
نوشته شده به وسیله: Mohsen در 2023-05-06 تحت عناوین پایتون کتابخانه-های-پایتون rich
کتابخانهی rich
ابزار نیرومندی در زبان پایتون است برای نمایش ویژگیهای rich در ترمینال! مثلا با آن میتوان:
- متنها را رنگبندی کرد.
- متنها را bold، italic و یا زیر خط دار کرد.
- متنها را چپچین، راستچین و یا وسطچین کرد.
- متنها را به یک آدرس اینترنتی لینک کرد.
- جدول ساخت و اطلاعات را در جدول نمایش داد.
- source code ها را بسته به زبان برنامهنویسی به صورت syntax highlight شده نمایش داد.
- کدهای Markdown را به صورت تفسیر شده نمایش داد.
- صفحهی ترمینال را لایه بندی کرد و در هر لایه چیزی قرار داد.
- progress bar ساخت و وضعیت پیشرفت یک یا چند عملیات را به صورت بصری به کاربر نشان داد.
- tree ساخت و اطلاعات را به صورت شاخه شاخه و تو در تو نمایش داد.
rich
ابزار فوقالعاده نیرومندی است. بعد از آشنایی با آن، راز ترمینالهایِ زیبایی که معمولا در هنگام نصب پکیجهای نرمافزاری میبینید برایتان فاش خواهد شد و دیگر چندان با اعجاب به آنها نگاه نخواهید کرد، برای اینکه خود قادر به نوشتن چنین برنامههایی خواهید بود.
بیایید تا از دانستههایمان از دستورات خط فرمان استفاده کنیم و برنامه ننویسیم!
در سال ۱۹۸۴ برایان کرنیگان دانشمند علوم کامپیوتر و نویسندهی محبوب من همراه با Rob Pike کتابی تحت عنوان Unix programming environment نوشتند. جملهای از آن کتاب در خاطرم مانده و آن را با ترجمهای آزاد نقل میکنم. گفته بودند: «تا میتوانید سعی کنید از ابزارهای یونیکس استفاده کنید و برنامهی مستقل ننویسید مگر اینکه مجبور باشید.» نام کتاب نیز واضح بیان میکند که محیط یونیکس (و سیستمهای شبه یونیکس مثل لینوکس)، محیط برنامهنویسی است.
قبلا سودوکو را با زبان پرل حل کرده بودیم ولی برای تفریح هم که شده تصمیم گرفتم این بار آن را با پایتون حل کنم. به هر حال گمان میکنم پایتون مورد استفادهی طیف وسیعتری از برنامهنویسان و کاربران سیستمهای لینوکس است. الگوریتم مورد استفاده را تغییر ندادم ولی برای اینکه شما را به آن مقاله ارجاع ندهم و از طرفی این پست نیز کاملا مستقل باشد کلیهی متدها و ساختار برنامه و نحوهی اجرای آن را شرح خواهم داد.