Compartir a través de


_chsize

Cambia el tamaño de un archivo. Una versión más segura está disponible; vea _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Parámetros

  • fd
    Descriptor de archivo que hace referencia a un archivo abierto.

  • size
    Nueva longitud en bytes de un archivo.

Valor devuelto

_chsize devuelve el valor 0 si el tamaño de archivo cambia correctamente. Un valor devuelto de – 1 indica un error: errno se establece en EACCES si el archivo especificado está bloqueado y el acceso, a EBADF si el archivo especificado es de solo lectura o descriptor es no válido, a ENOSPC si no se permite ningún espacio en el dispositivo, o a EINVAL si size es menor que cero.

Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de retorno.

Comentarios

La función de _chsize extiende o trunca el archivo asociado a fd con la longitud especificada por size. El archivo debe estar abierto en un modo que permite escribir. Se agregan caracteres null (“\0”) si se mejora el archivo. Si se trunca el archivo, todos los datos del final del archivo abreviado a la longitud original del archivo se pierde.

Esta función valida sus parámetros. Si size es menor que cero o fd es un archivo dañado descriptor, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.

Requisitos

Rutina

Encabezado necesario

Encabezado opcional

_chsize

<io.h>

<errno.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

// crt_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>
#include <share.h>

int main( void )
{
   int fh, result;
   unsigned int nbytes = BUFSIZ;

   // Open a file 
   if( _sopen_s( &fh, "data", _O_RDWR | _O_CREAT, _SH_DENYNO,
                 _S_IREAD | _S_IWRITE ) == 0 )
   {
      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 );
   }
}
  

Equivalente en .NET Framework

Vea también

Referencia

Control de archivos

_close

_sopen, _wsopen

_open, _wopen