_chsize
ファイルのサイズを変更します。セキュリティが強化されたバージョンがあります。; _chsize_s を参照してください。
int _chsize(
int fd,
long size
);
パラメーター
fd
開いているファイルを参照するファイル記述子。size
ファイルのバイトの配列の長さ。
戻り値
_chsize はファイル サイズが正常に変更された場合は値 0 を返します。1 を返しエラーを示しています : errno は EACCES に EBADFENOSPC に size が未満の場合は空間がデバイスになっている場合または EINVAL に指定されたファイルが読み取り専用である場合は記述子が無効の場合は指定されたファイルにアクセスに対してロックされているセット。
これらの詳細については_doserrnoerrno_sys_errlist と _sys_nerr とそのほかのリターン コード " " を参照してください。
解説
_chsize の関数は size で指定された長さに fd に関連付けられているファイルの拡張または切り捨てられます。ファイルはモードで開く必要があります。そのように記述できます。ファイルが拡張の場合は Null 文字 (「 \ 0 ") が追加されます。ファイルが切り詰められている場合は簡略化されたファイルの末尾からファイルの元の長さへのすべてのデータは失われます。
この関数は、パラメーターを検証します。または fd 不正なファイル記述子が size がより小さい場合に無効なパラメーター ハンドラーが パラメーターの検証 に説明されているように開始されます。
必要条件
ルーチン |
必須ヘッダー |
オプション ヘッダー |
---|---|---|
_chsize |
<io.h> |
<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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 );
}
}