.\" -*- coding: UTF-8 -*- .\" Copyright 1983-1991, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH truncate 2 "12 أبريل 2026" "صفحات دليل لينكس 6.18" .SH الاسم truncate, ftruncate \- اقتطاع ملف إلى طول محدد .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint truncate(const char *\fP\fIpath\fP\fB, off_t \fP\fIlength\fP\fB);\fP \fBint ftruncate(int \fP\fIfd\fP\fB, off_t \fP\fIlength\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBtruncate\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* منذ glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || /* glibc <= 2.19: */ _BSD_SOURCE .fi .P \fBftruncate\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* Since glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE .fi .SH الوصف تتسبب الدالتان \fBtruncate\fP() و \fBftruncate\fP() في اقتطاع الملف العادي المسمى بـ \fIpath\fP أو المشار إليه بـ \fIfd\fP إلى حجم يساوي بالضبط \fIlength\fP بايت. .P إذا كان الملف سابقًا أكبر من هذا الحجم، تُفقد البيانات الإضافية. إذا كان الملف سابقًا أقصر، يُمدد، ويُقرأ الجزء الممدد كبايتات فارغة (\[aq]\[rs]0\[aq]). .P لا يتغير إزاحة الملف. .P إذا تغير الحجم، فتُحدث حقلا st_ctime و st_mtime (على التوالي، وقت آخر تغيير للحالة ووقت آخر تعديل؛ انظر \fBinode\fP(7)) للملف، وقد تُمسح بتات وضع set\-user\-ID و set\-group\-ID. .P مع \fBftruncate\fP()، يجب أن يكون الملف مفتوحًا للكتابة؛ مع \fBtruncate\fP()، يجب أن يكون الملف قابلًا للكتابة. .SH "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء بالنسبة لـ \fBtruncate\fP(): .TP \fBEACCES\fP يُرفض إذن البحث لمكون من بادئة المسار، أو أن الملف المسمى غير قابل للكتابة من قبل المستخدم. (انظر أيضًا \fBpath_resolution\fP(7).) .TP \fBEFAULT\fP يشير الوسيط \fIpath\fP إلى خارج مساحة العنوان المخصصة للعملية. .TP \fBEFBIG\fP الوسيط \fIlength\fP أكبر من الحد الأقصى لحجم الملف. (XSI) .TP \fBENOSPC\fP لا توجد مساحة كافية متبقية على الجهاز لتمديد حجم الملف إلى \fIlength\fP المعطى. .TP \fBEINTR\fP أثناء الحظر انتظارًا للإكمال، قُطعت الاستدعاء بواسطة معالج إشارة؛ انظر \fBfcntl\fP(2) و \fBsignal\fP(7). .TP \fBEINVAL\fP الوسيط \fIlength\fP سالب أو أكبر من الحد الأقصى لحجم الملف. .TP \fBEIO\fP حدث خطأ إدخال/إخراج أثناء تحديث inode. .TP \fBEISDIR\fP الملف المسمى هو دليل. .TP \fBELOOP\fP صودفت روابط رمزية كثيرة جدًا عند ترجمة اسم المسار. .TP \fBENAMETOOLONG\fP تجاوز مكون من اسم المسار 255 حرفًا، أو تجاوز اسم المسار بالكامل 1023 حرفًا. .TP \fBENOENT\fP الملف المسمى غير موجود. .TP \fBENOTDIR\fP أحد مكونات بادئة المسار ليس دليلاً. .TP \fBEPERM\fP .\" This happens for at least MSDOS and VFAT filesystems .\" on kernel 2.6.13 نظام الملفات الأساسي لا يدعم تمديد ملف يتجاوز حجمه الحالي. .TP \fBEPERM\fP مُنعت العملية بواسطة ختم ملف؛ انظر \fBfcntl\fP(2). .TP \fBEROFS\fP الملف المسمى يقع في نظام ملفات للقراءة فقط. .TP \fBETXTBSY\fP الملف هو ملف قابل للتنفيذ يُنفذ حاليًا. .P بالنسبة لـ \fBftruncate\fP()، تنطبق نفس الأخطاء، ولكن بدلاً من الأشياء التي قد تكون خاطئة مع \fIpath\fP، لدينا الآن أشياء قد تكون خاطئة مع واصف الملف \fIfd\fP: .TP \fBEBADF\fP \fIfd\fP ليس واصف ملف صالح. .TP \fBEBADF\fP أو \fBEINVAL\fP \fIfd\fP غير مفتوح للكتابة. .TP \fBEINVAL\fP \fIfd\fP لا يشير إلى ملف عادي أو كائن ذاكرة مشتركة POSIX. .TP \fBEINVAL\fP أو \fBEBADF\fP واصف الملف \fIfd\fP غير مفتوح للكتابة. يسمح POSIX، ويجب على التطبيقات المحمولة التعامل مع أي من الخطأين لهذه الحالة. (ينتج Linux \fBEINVAL\fP.) .SH الإصدارات .\" At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002 التفاصيل في DESCRIPTION مخصصة للأنظمة المتوافقة مع XSI. بالنسبة للأنظمة غير المتوافقة مع XSI، يسمح معيار POSIX بسلوكين لـ \fBftruncate\fP() عندما يتجاوز \fIlength\fP طول الملف (لاحظ أن \fBtruncate\fP() غير محدد على الإطلاق في مثل هذه البيئة): إما إرجاع خطأ، أو تمديد الملف. مثل معظم تطبيقات UNIX، يتبع Linux متطلب XSI عند التعامل مع أنظمة الملفات الأصلية. ومع ذلك، لا تسمح بعض أنظمة الملفات غير الأصلية باستخدام \fBtruncate\fP() و \fBftruncate\fP() لتمديد ملف يتجاوز طوله الحالي: مثال بارز على Linux هو VFAT. .P في بعض معماريات 32 بت، تختلف بصمة الاستدعاء لنداءات النظام هذه، للأسباب الموصوفة في \fBsyscall\fP(2). .SH المعايير POSIX.1\-2024. .SH التاريخ .\" POSIX.1-1996 has .\" .BR ftruncate (). .\" POSIX.1-2001 also has .\" .BR truncate (), .\" as an XSI extension. .\" .P .\" SVr4 documents additional .\" .BR truncate () .\" error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documents for .\" .BR ftruncate () .\" an additional EAGAIN error condition. POSIX.1\-2001،‏ SVr4،‏ 4.2BSD. .P لم تُصمم استدعاءات النظام الأصلية Linux \fBtruncate\fP() و \fBftruncate\fP() للتعامل مع إزاحات الملفات الكبيرة. وبالتالي، أضاف Linux 2.4 استدعاءات النظام \fBtruncate64\fP() و \fBftruncate64\fP() التي تتعامل مع الملفات الكبيرة. ومع ذلك، يمكن تجاهل هذه التفاصيل من قبل التطبيقات التي تستخدم glibc، حيث تستخدم دوال الغلاف الخاصة بها بشفافية استدعاءات النظام الأحدث عند توفرها. .SH ملاحظات يمكن استخدام \fBftruncate\fP() أيضًا لتعيين حجم كائن ذاكرة مشتركة POSIX؛ انظر \fBshm_open\fP(3). .SH العلل .\" http://sourceware.org/bugzilla/show_bug.cgi?id=12037 خلل في ملف الرأس في glibc 2.12 يعني أن القيمة الدنيا لـ \fB_POSIX_C_SOURCE\fP المطلوبة لكشف تعريف \fBftruncate\fP() كانت 200809L بدلاً من 200112L. تم إصلاح هذا في إصدارات glibc اللاحقة. .SH "انظر أيضًا" \fBtruncate\fP(1), \fBopen\fP(2), \fBstat\fP(2), \fBpath_resolution\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .