chsize()
Change the size of a file
Synopsis:
#include <unistd.h> int chsize( int filedes, long size );
Arguments:
- filedes
- A file descriptor for the file whose size you want to change.
- size
- The new size of the file, in bytes.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
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.
The chsize() function
ignores advisory locks that may have been set with the
fcntl() function.
Returns:
- 0
- Success.
- -1
- An error occurred.
Errors:
- 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.
Examples:
#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;
}