Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Get the length of a file.
long_filelength*(inthandle***);**
__int64_filelengthi64(inthandle**);**
| 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