natsuの秘密基地です
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
あるディレクトリの奥の奥の奥にある。
そんなファイルをロードしたい。
初夏の夜。
ファイルサイズを取得して、
そのぶんだけメモリを確保。
んで、そこにむいてファイルから、
リードリードリード。
オーバーフロー!!
ん?なんでだろ。
処理を極限まで減らす。
ファイルから読み込みを無くした時点で、
エラーは出なくなる。
読み込みがやっぱ悪い。
んー。ファイルサイズで取得した分しか、
ファイルのサイズはないわけなんで、
教えてもらったファイルサイズだけメモリを確保すればいいはず。
ちなみにファイルサイズを知る方法。
NSDictionary *result = [manager attributesOfItemAtPath:path error:&error];
で得たDictionaryにはfileSizeってイベントを送ってもいいらしいんですな。
unsigned long long resultSize = [result fileSize];
さて。エラーのおこるやつ。
ファイルサイズなんぼじゃ。
/Users/dev/Documents/backup/dmGet/build/Debug/dmGet.app/Contents/Plugins/ITunesCommunication.plugin/Contents/Resources/lib/python2.6/site.py
こんなおくのおくのおくにあるファイル。
枠からはみ出ているだろうが気にしない。
枠からはみ出ているだろうが気にしない。
サイズは13。
そんなばかな。
site.py書いたの私だけど、13文字で書いた覚えは無い。
Finderで調べると、3042。
おっとー?
ファイルサイズの別の求め方として、
cの標準関数が使えるのならば。
前にlinuxでなんかを書いたとき、
statとかを使った気がする。
struct stat buf; /* ファイル情報の格納領域 */
size_t debug = 0;
if ((stat([path UTF8String], &buf)) == 0) {
debug = buf.st_size;
}
まあ、ちょいとこんな感じで。
で、どうなったかというと、
*attributesOfItemAtPath:error:の結果*
2010-06-12 23:12:57.672 crepe[44602:903] image:14df5b30 size:13 pt+n:14df5c30 name:/Users/dev/Documents/backup/dmGet/build/Debug/dmGet.app/Contents/Plugins/ITunesCommunication.plugin/Contents/Resources/lib/python2.6/site.py
Current language: auto; currently objective-c
“result”の説明を出力中:
{
NSFileCreationDate = "2010-05-01 21:15:52 +0900";
NSFileExtensionHidden = 0;
NSFileGroupOwnerAccountID = 20;
NSFileGroupOwnerAccountName = staff;
NSFileHFSCreatorCode = 1919443312;
NSFileHFSTypeCode = 1936485995;
NSFileModificationDate = "2010-05-01 21:15:52 +0900";
NSFileOwnerAccountID = 503;
NSFileOwnerAccountName = dev;
NSFilePosixPermissions = 493;
NSFileReferenceCount = 1;
NSFileSize = 13;←***ここ***
NSFileSystemFileNumber = 2854447;
NSFileSystemNumber = 234881026;
NSFileType = NSFileTypeSymbolicLink;
}
うそつき。
*statの結果*
デバッガで見た。
debugの値は3042。
正解。そのとおり。
なんなんかなぁ。
わたし、なんかしたっけかなぁ。
とりあえず、statで問題をよけるぞ。
PR
この記事にコメントする