نوشته شده به وسیلهی: Mohsen در 1 سال 4 ماه پیش تحت عنوان کدهای-متفرقه پیاده-سازی-برنامه-های-لینوکس
تکه کد زیر حالت پیش فرض دستور who(1) را پیادهسازی میکند:
#include <stdio.h>
#include <stdlib.h>
#include <utmpx.h>
#include <time.h>
int
main(int argc, char *argv[])
{
char buf[20];
struct utmpx *ut;
struct tm *tm;
time_t t;
setutxent();
while ((ut = getutxent()) != NULL) {
if (ut->ut_type != USER_PROCESS)
continue;
t = ut->ut_tv.tv_sec;
tm = localtime(&t);
strftime(buf, 30, "%Y-%m-%d %H:%M", tm);
printf("%-8s ", ut->ut_user);
printf("%-12s %s\n", ut->ut_line, buf);
}
endutxent();
}
برنامه به صورت زیر کامپایل و اجرا میشود:
$ gcc -o who who.c
$ ./who
mohsen tty1 2020-12-23 20:18
mohsen pts/0 2020-12-23 20:21
fake tty3 2020-12-23 21:22
من محسن هستم؛ برنامهنویس PHP و Laravel و Zend Framework و پایتون و فلسک، ولی بیشتر تمرکزم روی لاراول است. این سایت را اولین بار با فلسک نوشتم ولی بعد تصمیم گرفتم آن را با لاراول نیز پیادهسازی کنم. هم نسخهی فسلک و هم نسخهی لاراول را میتوانید روی گیتهابم پیدا و دانلود کنید.
برای ارتباط با من یا در همین سایت کامنت بگذارید و یا به dokaj.ir(at)gmail.com ایمیل بزنید.
در مورد این مطلب یادداشتی بنویسید.