_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 はエラーを示します。指定されたファイルが読み取り専用の場合、または指定されたファイルがアクセスに対してロックされている場合はEACCESに設定され、記述子が無効である場合は ENOSPC、デバイスに領域が残されていない場合はに設定されますSizeが0未満の場合はEINVALA 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に関連付けられているファイルを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.

必要条件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