私のOSとドライブは
OS: Windows XP sp2 or Linux SUSE 9 or Cygwin
Compiler: Visual C++ 2003 or Gcc or Cygwin
PC and os are both 32 bits
だから、どうすれば秒単位で超巨大なファイルを作成できますか
MappingFile関数を使用するように言われました。2Gでファイルを作成できなかったので...温かいご回答をいただければ幸いです。
私のOSとドライブは
OS: Windows XP sp2 or Linux SUSE 9 or Cygwin
Compiler: Visual C++ 2003 or Gcc or Cygwin
PC and os are both 32 bits
だから、どうすれば秒単位で超巨大なファイルを作成できますか
MappingFile関数を使用するように言われました。2Gでファイルを作成できなかったので...温かいご回答をいただければ幸いです。
Linuxで1GBのファイルを作成するために使用dd
すると、低速のディスクを備えたある程度ロードされたボックスで57秒の「実時間」、および約17秒のシステム時間がかかります。
$ time dd if=/dev/zero of=bigfile bs=G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 53.9903 s, 19.9 MB/s
real 0m56.685s
user 0m0.008s
sys 0m17.113s
$
あなたはddを使うことができます
dd if=/dev/zero of=bigfile.txt bs=$((1024*1024)) count=100
または、単純なシェルスクリプトと内容は関係ありません
1) create a dummy file with a few lines, eg 10 lines
2) use cat dummy >> bigfile in a while loop
eg
while true
do
cat dummy >> bigfile.txt
#check for number of lines more than 10000 for example and break out of loop
done
もう一度やりなさい
while true
do
cat bigfile >> bigfile2.txt
# check for size and break out..
done
rm -f dummy bigfile
ファイルは実際のディスク容量を使用する必要がありますか?そうでない場合は、いつでも(CygwinまたはLinuxで)次のことができます。
dd if=/dev/zero of=bigfile seek=7T bs=1 count=1
これにより、ほんの一瞬で空の7TBファイルが作成されます。もちろん、実際のディスク容量はあまり割り当てられません。大きなスパースファイルが作成されます。
CygwinまたはLinuxでプログラムを作成する場合、 ftruncateを呼び出すことで、Cプログラムでも同じことができます。
システムの制限に応じて、ほんの一瞬で大きなファイルを作成できます...
FILE *fp = fopen("largefile" ,"w");
for(int i = 0; i < 102400; i++)
{
fseek(fp, 10240000, SEEK_CUR);
}
fprintf(fp, "%c", 'x');
fclose(fp);
これで遊んでください。
cat / dev / urandom >> / home / mybigfile
ディスク容量がなくなるとエラーになります。
これはlinux/bsd/おそらくcgywin用です
VMで使用しdd if=/dev/zero of=file;rm file
て、ディスクをいっぱいにし、完全になったらファイルを削除しました。これにより、何らかの理由で画像をもう少し圧縮することができ、どこかのフォーラムでそれを行うことについて読みました。
Win2000 / XP/7では「fsutil」コマンドを使用できます。
c:> fsutil file createnew使用法:fsutil file createnew例:fsutil file createnew C:\ testfile.txt 1000
Reagrds
スパースファイルが必要な場合は、CreateFile、DeviceIOFunctionとFSCTL_SET_SPARSE、およびFSCTL_SET_ZERO_DATAを使用して、Windows(NTFSボリューム)でも実行できます。詳細については、こちらをご覧ください。