The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

ftruncate (2)
  • ftruncate (2) ( FreeBSD man: Системные вызовы )
  • >> ftruncate (2) ( Русские man: Системные вызовы )
  • ftruncate (2) ( Linux man: Системные вызовы )
  • ftruncate (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

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

    СИНТАКСИС

    #include <unistd.h>

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

    ОПИСАНИЕ

    Функции truncate и ftruncate устанавливают длину обычного файла с именем path или файловым дескриптором fd в length байт.

    Если файл до этой операции был длиннее, то отсеченные данные теряются. Если файл был короче, то он увеличивается, а добавленная часть заполняется нулевыми байтами.

    Указатель на файл не меняется.

    При использовании ftruncate файл должен быть открыт для записи; при использовании truncate файл должен быть доступен для записи.  

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

    При успешной работе функции возвращаемое значение равно нулю. При ошибке возвращается -1, а переменной errno присваивается номер ошибки.  

    НАЙДЕННЫЕ ОШИБКИ

    Для truncate:
    EACCES
    В одном из компонентов пути не разрешен поиск или пользователь не имеет прав на запись в указанный файл.
    EFAULT
    Аргумент path указывает за пределы адресного пространства процесса.
    EFBIG
    Аргумент length больше чем максимальный размер файла. (XSI)
    EINTR
    Во время выполнения был перехвачен сигнал.
    EINVAL
    Аргумент length имеет отрицательное значение или больше, чем максимальный размер файла.
    EIO
    При обновлении inode произошла ошибка ввода/вывода.
    EISDIR
    Указанный файл является каталогом.
    ELOOP
    Полное имя файла (путь) состоит из слишком большого количества символьных ссылок.
    ENAMETOOLONG
    Компонент пути превышает 255 символов или весь путь превышает 1023 символа.
    ENOENT
    Файл не существует.
    ENOTDIR
    Компонент пути, использованный как каталог, в действительности таковым не является.
    EROFS
    Файл находится в файловой системе, предназначенной только для чтения.
    ETXTBSY
    Файл является исполняемым и в настоящий момент выполняется.

    Для ftruncate используются те же коды, но ошибоки, связаны не с path, а с fd:

    EBADF
    Неправильный файловый дескриптор fd.
    EBADF или EINVAL
    Дескриптор fd не открыт для записи.
    EINVAL
    Дескриптор fd ссылается не на обычный файл.
     

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

    4.4BSD, SVr4 (эти системные вызовы впервые появились в BSD 4.2). POSIX 1003.1-1996 has ftruncate. POSIX 1003.1-2001 also has truncate, as an XSI extension.

    В SVr4 описаны следующие дополнительные коды ошибок truncate: EMFILE, EMULTIHP, ENFILE, ENOLINK. Также в SVr4 описан дополнительные код ошибки ftruncate: EAGAIN.  

    ЗАМЕЧАНИЯ

    Выше приведено описание для систем, соответствующих XSI. Для систем, не соответствующих XSI, стандарт POSIX в случаях, когда при вызове функции ftruncate аргумент length превышает длину файла, позволяет либо возвращать ошибку, либо увеличивать длину файла (обратите внимание, что truncate в таких окружениях не описана вообще). (Большинство UNIX-подобных систем следует требованиям XSI.)  

    СМ. ТАКЖЕ

    open(2)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    ЗАМЕЧАНИЯ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2023 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру