Provided by: manpages-ru_0.98-4_all bug

НАЗВАНИЕ

       truncate, ftruncate - обрезать файл до указанной длины

КРАТКАЯ СВОДКА

       #include <unistd.h>

       int truncate(const char *path, off_t length);
       int ftruncate(int fd, off_t length);

ОПИСАНИЕ

       truncate   обрезает  файл  с  именем  path  или  обозначенный  файловым
       дескриптором fd до  length  байт.   Если  файл  до  этой  операции  был
       длиннее,  то  оставшиеся  данные теряются.  Если файл был короче, то не
       определено, останется ли длина файла неизменной или же она  увеличится.
       В  последнем  случае  новый  кусок файла будет содержать нулевые байты.
       При использовании ftruncate файл должен быть открыт для записи.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       В случае успеха возвращается ноль.  При ошибке возвращается -1, а errno
       устанавливается должным образом.

ОШИБКИ

       Для truncate:

       ENOTDIR

              Компонент  пути,  использованный как каталог, в действительности
              таковым не является.

       ENAMETOOLONG
              Компонент пути превышает 255 символов или  весь  путь  превышает
              1023 символа.

       ENOENT Файл не существует.

       EACCES В одном из компонентов пути не разрешен поиск.

       EACCES Пользователь не имеет прав на запись в указанный файл.

       ELOOP  При  прохождении  пути  встречено  слишком  много  символических
              ссылок.

       EISDIR Указанный файл является каталогом.

       EROFS  Файл находится на файловой системе,  смонтированной  только  для
              чтения.

       ETXTBSY
              Файл является исполняемым и в настоящий момент выполняется.

       EIO    При обновлении inode произошла ошибка ввода-вывода.

       EFAULT path указывает за пределы доступного адресного пространства.

       Для ftruncate:

       EBADF  Неверный файловый дескриптор fd.

       EINVAL Дескриптор fd ссылается на сокет, а не на файл.

       EINVAL Дескриптор fd не открыт для записи.

СООТВЕТСТВИЕ СТАНДАРТАМ

       4.4BSD,  SVr4 (эти системные вызовы впервые появились в BSD 4.2).  SVr4
       документирует  дополнительные  коды  ошибок  truncate:  EINTR,  EMFILE,
       EMULTIHP,  ENAMETOOLONG,  ENFILE, ENOLINK, ENOTDIR.  SVr4 документирует
       дополнительные коды ошибок ftruncate EAGAIN и  EINTR.   POSIX  содержит
       ftruncate,   но   не  truncate.   Стандарт  POSIX  не  определяет,  что
       произойдет, если в файле меньше байт, чем length.

ОШИБКИ В РЕАЛИЗАЦИИ

       Эти системные вызовы должны быть обобщены, чтобы разрешить отбрасывание
       целых участков файла.

СМОТРИ ТАКЖЕ

       open(2)

ПЕРЕВОД

       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999-2000

                                21 декабря 1998                    TRUNCATE(2)