utime(2)

الاسم
utime, utimes - تغيير أوقات آخر وصول وتعديل للملف

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <utime.h>

int utime(const char *path,
          const struct utimbuf *_Nullable times);

#include <sys/time.h>

int utimes(const char *path,
          const struct timeval times[_Nullable 2]);

الوصف
ملاحظة: قد تفضل التطبيقات الحديثة استخدام الواجهات الموصوفة في utimensat(2).

يغير استدعاء النظام utime() أوقات الوصول والتعديل لعقدة inode المحددة بواسطة path إلى حقلي actime و modtime من times على التوالي. سيتم تعيين وقت تغيير الحالة (ctime) إلى الوقت الحالي، حتى لو لم تتغير الطوابع الزمنية الأخرى فعليًا.

إذا كان times فارغًا (NULL)، فسيتم تعيين أوقات الوصول والتعديل للملف إلى الوقت الحالي.

يُسمح بتغيير الطوابع الزمنية عندما: إما أن تمتلك العملية الصلاحيات المناسبة، أو أن معرف المستخدم الفعلي يساوي معرف مستخدم الملف، أو أن times فارغ وتمتلك العملية إذن الكتابة للملف.

هيكل utimbuf هو:

    struct utimbuf {
        time_t actime;       /* وقت الوصول */
        time_t modtime;      /* وقت التعديل */
    };

يسمح استدعاء النظام utime() بتحديد الطوابع الزمنية بدقة 1 ثانية.

استدعاء النظام utimes() مشابه، لكن وسيط times يشير إلى مصفوفة بدلاً من هيكل. عناصر هذه المصفوفة هي هياكل timeval، والتي تسمح بدقة 1 ميكروثانية لتحديد الطوابع الزمنية. هيكل timeval هو:

    struct timeval {
        long tv_sec;        /* ثوانٍ */
        long tv_usec;       /* ميكروثوانٍ */
    };

يحدد times[0] وقت الوصول الجديد، ويحدد times[1] وقت التعديل الجديد. إذا كان times فارغًا، فبشكل مماثل لـ utime()، يتم تعيين أوقات الوصول والتعديل للملف إلى الوقت الحالي.

قيمة الإرجاع
عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم -1، ويُضبط errno للإشارة إلى الخطأ.

الأخطاء

EACCES
    تم رفض إذن البحث لأحد الدلائل في بادئة المسار لـ path (انظر أيضًا path_resolution(7)).

EACCES
    times فارغ، معرف المستخدم الفعلي للمتصل لا يطابق مالك الملف، لا يمتلك المتصل إذن الكتابة للملف، والمتصل ليس له صلاحيات (لينكس: لا يمتلك إمكانية CAP_DAC_OVERRIDE أو CAP_FOWNER).

EFAULT
    يشير path إلى عنوان غير صالح.

ENOENT
    path غير موجود.

EPERM
    times ليس فارغًا، معرف المستخدم الفعلي للمتصل لا يطابق مالك الملف، والمتصل ليس له صلاحيات (لينكس: لا يمتلك إمكانية CAP_FOWNER).

EROFS
    يقع path على نظام ملفات للقراءة فقط.

المعايير

utime()
    لا شيء.

utimes()
    POSIX.1-2024.

التاريخ

utime()
    SVr4, POSIX.1-2001. مهمل في POSIX.1-2008. تمت إزالته في POSIX.1-2024.

utimes()
    4.3BSD، POSIX.1-2001.

ملاحظات
لا يسمح لينكس بتغيير الطوابع الزمنية على ملف غير قابل للتغيير، أو تعيين الطوابع الزمنية إلى شيء غير الوقت الحالي على ملف للإلحاق فقط.

انظر أيضًا
chattr(1), touch(1), futimesat(2), stat(2), utimensat(2), futimens(3), futimes(3), inode(7)

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

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

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