chsize()

Изменить размер файла

Прототип:

#include <unistd.h>
int chsize( int filedes,
long size );

Аргументы:

filedes
Дескриптор файла, чей размер нужно увеличить.
size
Новый размер файла в байтах.

Библиотека:

libc

Описание:

Функция chsize() увеличивает или уменьшает файл, определяемый filedes, до размера size байтов. Файл дополняется символами NUL ('\0'), если его необходимо увеличить.


Note: Функция chsize() игнорирует рекомендательные блокировки, которые могут быть установлены функцией fcntl().

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка.

Коды ошибок:

EBADF
Аргумент filedes не является корректным файловым дескриптором, либо файл не открыт для записи.
ENOSPC
На устройстве недостаточно места для увеличения размера файла.
ENOSYS
Функция chsize() не реализована для файловой системы, содержащей filedes.

Примеры:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
int main( void )
{
int filedes;
filedes= open( "file", O_RDWR | O_CREAT,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
if ( filedes!= -1 )
{
if ( chsize( filedes, 32 * 1024L ) != 0 )
{
printf( "Error extending file\n" );
}
close( filedes );
return (EXIT_SUCCESS);
}
return (EXIT_FAILURE);
}

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

close(), creat(), errno, ftruncate(), open()




Предыдущий раздел: Описание API системной библиотеки