とりわけ、ゼロで埋められたファイルを保存する必要があるコードに取り組んでいます。10MB から 1GB の空のファイルを作成することも期待できます。
これは、次の Unix コマンドに似ている必要があります。
dd if=/dev/zero of=my_image.dsk count=20480
小さなサイズでこの1つの作業を行うことができます:
int totalSize = 1024*1024;
char buf[totalSize];
strcpy(buf,"");
NSData *theData = [NSData dataWithBytes:buf length:sizeof(buf)];
//NSLog(@"%@", theData);
NSLog(@"%lu", sizeof(buf));
[theData writeToFile:@"/Users/foo/Desktop/my_image.dsk" atomically:YES];
しかし、より大きな値 (たとえば、1024*1024*10) を試すと、クラッシュします。だから私は試しました:
NSFileManager *ddd = [[NSFileManager alloc ] init];
[ddd createFileAtPath:@"/Users/foo/Desktop/my_image.dsk" contents:[NSData data] attributes:nil];
空のファイルが作成されますが、ファイル サイズがゼロなので良くありません。ゼロであってはなりません。
答えを見つけるのに何時間も費やしましたが、成功しませんでした。私は Obj-C でこれを行いたいのですが、気が狂う前に C もオプションです。
誰か光をください!
前もって感謝します!
- 編集 -
みんなありがとう、でももう1つ、メモリにすべてを割り当てずに書き込むことは可能ですか?