chsize()

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

Прототип:

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

Аргументы:

filedes
A file descriptor for the file whose size you want to change.
size
The new size of the file, in bytes.

Библиотека:

libc

Описание:

The chsize() function extends or truncates the file specified by filedes to size bytes The file is padded with NUL ('\0') characters if it needs to be extended.


Note: The chsize() function ignores advisory locks that may have been set with the fcntl() function.

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

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

Коды ошибок:

EBADF
The filedes argument isn't a valid file descriptor, or the file isn't opened for writing.
ENOSPC
There isn't enough space left on the device to extend the file.
ENOSYS
The chsize() function isn't implemented for the filesystem specified by 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 системной библиотеки