login(3)

الاسم
login, logout - كتابة مدخلات utmp و wtmp

المكتبة
مكتبة أدوات النظام (libutil، -lutil)

موجز
#include <utmp.h>

void login(const struct utmp *ut);
int logout(const char *ut_line);

الوصف
يسجل ملف utmp من يستخدم النظام حاليًا. ويسجل ملف wtmp جميع عمليات الدخول والخروج. انظر utmp(5).

تأخذ الدالة login() البنية struct utmp المقدمة، ut، وتكتبها في كل من ملفي utmp و wtmp.

تمسح الدالة logout() المدخل في ملف utmp مرة أخرى.

  تفاصيل جنو
بشكل أكثر دقة، تأخذ login() وسيط البنية ut، وتملأ الحقل ut->ut_type (إن وُجد) بالقيمة USER_PROCESS، وتملأ الحقل ut->ut_pid (إن وُجد) بمعرف العملية للعملية المستدعية. ثم تحاول ملء الحقل ut->ut_line. تأخذ أول stdin أو stdout أو stderr الذي يكون طرفية، وتخزن اسم المسار المقابل بعد إزالة البادئة المحتملة /dev/ في هذا الحقل، ثم تكتب البنية إلى ملف utmp. من ناحية أخرى، إن لم يُعثر على اسم طرفية، يُملأ هذا الحقل بـ "???" ولا تُكتب البنية إلى ملف utmp. بعد ذلك، تُكتب البنية إلى ملف wtmp.

تبحث الدالة logout() في ملف utmp عن مدخل يطابق وسيط ut_line. إن وُجد سجل، يُحدّث بتصفير الحقلين ut_name و ut_host، وتحديث حقل الطابع الزمني ut_tv، وتعيين ut_type (إن وُجد) إلى DEAD_PROCESS.

قيمة الإرجاع
تُرجع الدالة logout() 1 إن كُتب المدخل بنجاح إلى قاعدة البيانات، أو 0 إن حدث خطأ.

الملفات

/var/run/utmp
    قاعدة بيانات محاسبة المستخدم، مُهيأة عبر _PATH_UTMP في <paths.h>

/var/log/wtmp
    ملف سجل محاسبة المستخدم، مُهيأ عبر _PATH_WTMP في <paths.h>

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
login(), logout() | سلامة الخيوط | غير آمن للمسارات المتعددة (MT-Unsafe) سباق:utent إشارة:ALRM مؤقت

في الجدول أعلاه، يشير utent في race:utent إلى أنه إن استُخدمت أي من الدوال setutent(3) أو getutent(3) أو endutent(3) بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. تستدعي login() و logout() تلك الدوال، لذا نستخدم race:utent لتذكير المستخدمين.

الإصدارات
يُسمى العضو ut_user من struct utmp بـ ut_name في BSD. لذلك، يُعرف ut_name كاسم مستعار لـ ut_user في <utmp.h>.

المعايير
BSD.

انظر أيضًا
getutent(3), utmp(5)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.