Get the length of a file.
long _filelength( int handle );
__int64 _filelengthi64( int handle );
Function | Required Header | Compatibility |
_filelength | <io.h> | Win 95, Win NT |
_filelengthi64 | <io.h> | Win 95, Win NT |
For additional compatibility information, see Compatibility in the Introduction.
Libraries
LIBC.LIB | Single thread static library, retail version |
LIBCMT.LIB | Multithread static library, retail version |
MSVCRT.LIB | Import library for MSVCRT.DLL, retail version |
Return Value
Both _filelength and _filelengthi64 return the file length, in bytes, of the target file associated with handle. Both functions return a value of –1L to indicate an error, and an invalid handle sets errno to EBADF.
Parameter
handle
Target file handle
Example
/* CHSIZE.C: This program uses _filelength to report the size
* of a file before and after modifying it with _chsize.
*/
#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
void main( void )
{
int fh, result;
unsigned int nbytes = BUFSIZ;
/* Open a file */
if( (fh = _open( "data", _O_RDWR | _O_CREAT, _S_IREAD
| _S_IWRITE )) != -1 )
{
printf( "File length before: %ld\n", _filelength( fh ) );
if( ( result = _chsize( fh, 329678 ) ) == 0 )
printf( "Size successfully changed\n" );
else
printf( "Problem in changing the size\n" );
printf( "File length after: %ld\n", _filelength( fh ) );
_close( fh );
}
}
Output
File length before: 0
Size successfully changed
File length after: 329678
See Also _chsize, _fileno, _fstat, _fstati64, _stat, _stati64