ページ 11

iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 20:43
by bonbo
早速ですが質問させていただきます。
以前fopenについて同様の質問し、
そのとき"rb"モードでfopenすることはできたのですが、
"wb"モードでのfopenが成功しません。
読み込むファイルのTargetMembershipにはチェックを入れてあります。

以下のように読み込もうとしています。

コード:

//Data0.datに書き込みたい。
    NSString*path=[[NSBundle mainBundle]pathForResource:@"Data0" ofType:@"dat"];
    
    NSLog(@"Writepath:%@",path);// ここのパスは正しく表示される。
    fp = fopen([path cStringUsingEncoding:1],"wb");
    NSLog(@"%d",(int)fp);// ここが0
#endif
	if(fp==NULL){
		fclose( fp ) ;
#ifdef DIRECT3D_VERSION
#else
        NSLog(@"failed1");// これが表示されて失敗
#endif
		return -1;
	}
どこがおかしいのでしょうか。
環境は
Xcode4.4
iPhoneは4Sでテストを行っています。

よろしくお願いします。

Re: iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 20:55
by bonbo
蛇足かもしれませんが、
// ここのパスは正しく表示される。
というのは
/var/mobile/Applications/~~/Data0.dat
のように表示されるということです。

Re: iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 21:10
by h2so5
過去ログをよく読みましょう。リソースに対する書き込みはできないと説明されているはずです。

http://dixq.net/forum/viewtopic.php?f=3&t=12646

Re: iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 22:15
by bonbo
>h2so5さん
ありがとうございます。
>リソースに対する書き込みはできない
つまり、ディレクトリの部分が間違っているということでしょうか。
(実は前回書き込めるディレクトリについて
 よくわからないまま解決してしまいました。本当に申し訳ないです。)
http://www.yoheim.net/blog.php?q=20111128
ここによると、
<Application_Home>/Library/Preferences
というディレクトリには設定情報を保存しておけるというように述べられているので
現在の
/var/mobile/Applications/~~/test.app/Data0.dat

/var/mobile/Applications/~~/test.app/Library/Preferences/Data0.dat
のようにして実行してみましたが0がかえってきてしまいました。

コード:

fp = fopen([@"/var/mobile/Applications/2C19BDF8-F056-4421-80DB-541343E0A861/test.app/Library/Preferences/Data0.dat" cStringUsingEncoding:1],"wb");
こういう状況です。
まだ足りない部分があるのでしょうか。

Re: iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 22:50
by bonbo
path=NSHomeDirectory();でホームディレクトリ取得できますね
/var/mobile/Applications/2C19BDF8-F056-4421-80DB-541343E0A861でした。

Re: iPhoneでfopen(wb)が成功しない

Posted: 2013年6月25日(火) 23:06
by bonbo
できました。大成功です。とってもうれしいです。
どうもありがとうございました。

参考にしたページです。
http://www47.atwiki.jp/socup/pages/173.html