_chsize_s

ファイル サイズを変更します。 この関数は、「CRT_chsizeセキュリティ機能」の説明に従って、セキュリティが強化されたバージョンです。

構文

errno_t _chsize_s(
   int fd,
   __int64 size
);

パラメーター

fd
開いているファイルを参照するファイル記述子。

size
バイト単位のファイルの新しい長さ。

戻り値

ファイル サイズが正常に変更された場合は、_chsize_s は値 0 を返します。 0 以外の戻り値はエラーを示します: 指定したファイルがアクセスに対してロックされている場合、戻り値は EACCES になり、指定したファイルが読み取り専用かまたは記述子が無効な場合は EBADF、デバイスで空いている領域が残っていない場合は ENOSPC、サイズが 0 未満の場合は EINVAL になります。 errno は同じ値に設定されます。

これらのリターン コードとその他のリターン コードについては、「errno_doserrno_sys_errlist_sys_nerr」を参照してください。

解説

_chsize_s 関数は、fd に関連付けられているファイルを size に指定された長さに拡張するか切り捨てます。 ファイルは、書き込みを許可するモードで開かれている必要があります。 ファイルが拡張される場合は、null 文字 ('\0') が追加されます。 ファイルが切り捨てられる場合、短くなったファイルの末尾からファイルの元の長さまでのすべてのデータは失われます。

_chsize_s は、ファイル サイズとして 64 ビットの整数を取るので、4 GB より大きいファイル サイズを処理できます。 _chsize は、32 ビットのファイル サイズに制限されます。

この関数は、パラメーターを検証します。 有効なファイル記述子ではない場合、またはサイズが 0 未満の場合fdは、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

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

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

ファイル処理
_chsize
_close
_creat, _wcreat
_open, _wopen