Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dosyanın boyutunu değiştirir. Daha güvenli bir sürüm mevcuttur; bkz _chsize_s. .
Sözdizimi
int _chsize(
int fd,
long size
);
Parametreler
fd
Açık bir dosyaya başvuran dosya tanımlayıcısı.
size
Dosyanın bayt cinsinden yeni uzunluğu.
Dönüş değeri
_chsize , dosya boyutu başarıyla değiştirilirse 0 değerini döndürür. -1 dönüş değeri bir hatayı gösterir: errno belirtilen dosya salt okunursa veya belirtilen dosya erişime EBADF karşı kilitlenmişse, tanımlayıcı geçersizse, ENOSPC cihazda boş alan kalmadıysa veya EINVAL sıfırdan küçükse size olarak ayarlanırEACCES.
İade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.
Açıklamalar
işlevi ile _chsize ilişkilendirilmiş dosyayı tarafından sizebelirtilen uzunlukla fd genişletir veya kısaltır. Dosyanın yazmaya izin veren bir modda açık olması gerekir. Dosya genişletilmişse null karakterler ('\0') eklenir. Dosya kesilirse, kısaltılmış dosyanın sonundan dosyanın özgün uzunluğuna kadar olan tüm veriler kaybolur.
Bu işlev parametrelerini doğrular. Sıfırdan küçükse veya fd hatalı bir dosya tanımlayıcısıysasize, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
| Yordam | Gerekli başlık | İsteğe bağlı üst bilgi |
|---|---|---|
_chsize |
<io.h> | <errno.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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 );
}
}
File length before: 0
Size successfully changed
File length after: 329678