_chsize_chsize

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

構文Syntax

int _chsize(
   int fd,
   long size
);

パラメーターParameters

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

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

戻り値Return Value

_chsizeファイル サイズが正常に変更された場合、値 0 を返します。_chsize returns the value 0 if the file size is successfully changed. 戻り値-1 はエラーを示します: errnoに設定されているEACCES指定したファイルが読み取り専用か、指定したファイルがアクセスに対してにロックされているEBADF場合、記述子が有効でないENOSPC 、デバイス上の領域が残っていない場合またはEINVAL場合サイズ0 未満です。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.

RemarksRemarks

_Chsize関数の拡張またはに関連付けられているファイルを切り捨てますfdで指定された長さにサイズします。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. 場合サイズが 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.

必要条件Requirements

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

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

Example

// 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

関連項目See also

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