تکه کد زیر حالت پیش فرض دستور who(1) را پیاده‌سازی می‌کند:

who.c
#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();
}

برنامه به صورت زیر کامپایل و اجرا می‌شود:

SHELL
$ 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
نوشته شده در: 1402-02-18 (1 سال 1 هفته 5 ساعت پیش)

من محسن هستم؛ برنامه‌نویس PHP و Laravel و Zend Framework و پایتون و فلسک، ولی بیشتر تمرکزم روی لاراول است. این سایت را اولین بار با فلسک نوشتم ولی بعد تصمیم گرفتم آن را با لاراول نیز پیاده‌سازی کنم. هم نسخه‌ی فسلک و هم نسخه‌ی لاراول را می‌توانید روی گیت‌هابم پیدا و دانلود کنید.

برای ارتباط با من یا در همین سایت کامنت بگذارید و یا به dokaj.ir(at)gmail.com ایمیل بزنید.

در مورد این مطلب یادداشتی بنویسید.