ファイル サイズを変更します。Changes the size of a file. セキュリティが強化されたバージョンについては、「_chsize_s」を参照してください。A more secure version is available; see _chsize_s.


int _chsize(
   int fd,
   long size


開いているファイルを参照するファイル記述子。File descriptor referring to an open file.

バイト単位のファイルの新しい長さ。New length of the file in bytes.

戻り値Return Value

ファイルサイズが正常に変更された場合、 _chsize は値0を返します。_chsize returns the value 0 if the file size is successfully changed. 戻り値-1 はエラーを示します。指定されたファイルが読み取り専用の場合、または指定されたファイルがアクセスに対してロックされている場合は EACCES に設定され、記述子が無効 である場合 は ENOSPC、デバイスに領域がない場合は 、サイズ が0未満の場合は EINVAL に設定さ れます。A return value of -1 indicates an error: errno is set to EACCES if the specified file is read-only or the specified file is locked against access, to EBADF if the descriptor is invalid, ENOSPC if no space is left on the device, or EINVAL if size is less than zero.

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, return codes.


_Chsize 関数は、 fd に関連付けられているファイルを size によって指定された長さに拡張または切り捨てます。The _chsize function extends or truncates the file associated with fd to the length specified by size. ファイルは、書き込みを許可するモードで開かれている必要があります。The file must be open in a mode that permits writing. ファイルが拡張される場合は、null 文字 ('\0') が追加されます。Null characters ('\0') are appended if the file is extended. ファイルが切り捨てられる場合、短くなったファイルの末尾からファイルの元の長さまでのすべてのデータは失われます。If the file is truncated, all data from the end of the shortened file to the original length of the file is lost.

この関数は、パラメーターを検証します。This function validates its parameters. Size が0より小さいか、 fd が無効なファイル記述子である場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If size is less than zero or fd is a bad file descriptor, the invalid parameter handler is invoked, as described in Parameter Validation.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.


ルーチンによって返される値Routine 必須ヘッダーRequired header オプション ヘッダーOptional header
_chsize_chsize <io.h> <errno.h>

互換性について詳しくは、「 Compatibility」をご覧ください。For more compatibility information, see Compatibility.


// 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" );
         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

関連項目See also

ファイルの処理File Handling
_sopen、_wsopen_sopen, _wsopen
_open、_wopen_open, _wopen