PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

さて、ファイルを開く際に、fopen( ); 関数と sceIoOpen( );関数の2種類あるぞ、困った…。と思っておられる方がいるハズ。

そこで、今回は、ファイル入出力について書いてみようと思います。

ファイルポインタ構造体 (FILE *) を使うファイル操作を、バッファド・ファイル入出力と言い、バッファリングや、その他のサービスがされます。
いっぽう、ファイル・ディスクリプタ(ファイル記述子 / int)を使うのを 低水準ファイル入出力と言い、よりOSに近いレベルでのファイル操作となっています。

バッファリング
入力された内容がシステムバッファに溜められて、ある条件を満たした際に 一度にまとめてデータを渡す仕組み


【 バッファド・ファイル入出力の概念 】
文字単位・行単位での処理を行なえます。

【 低水準ファイル入出力の概念 】
ユーザが指定したバッファとの間で直接バイト単位の読み出し/書き込みを行なえます。

【 ファイル・オープンモードの解説 】
C:\pspsdk\psp\sdk\include\pspiofilemgr_fcntl.h ← このファイルに記述されている値について

モード 機 能
PSP_O_RDONLY 読み出し・オンリー・モード
PSP_O_WRONLY 書き込み・オンリー・モード
PSP_O_RDWR 読み出し・書き込み・モード
PSP_O_NBLOCK 不明(ひょっとして、ブロッキング転送に関係あり?)
PSP_O_DIROPEN ディレクトリ・オープン・モード(使用されない)
PSP_O_APPEND 追記モード
PSP_O_CREAT ファイルの新規作成モード
PSP_O_TRUNC 既存ファイルをオープンし、空ファイルにする
PSP_O_EXCL ファイルが存在すれば新規作成しない
PSP_O_NOWAIT 待ち時間無し転送モ-ド
↑↑ この値は、sceIoOpen( );関数などで使用されますね。


【 ファイルオープン関数の返り値 0 or 負 】
fopen( );関数の返り値は、エラーの時はNULLですが、sceIoOpen( );関数でのエラー返り値は、負の数(値は不定) です。うっかり間違えることが多いと思いますので気をつけて下さい。
正常な返り値は、共に正の値です。


PSPSDKでは、ファイルのテキスト形式やバイナリ形式という概念が無いのか、パラメータが省かれているのか、デフォルトでバイナリ形式となっているっぽいです。テキスト形式も扱えるバイナリ型ということでイイノカ?


次は、「メモリースティック内のファイルの書き換えの方法 その1」 の予定です。


【 関連記事 】
PSPプログラミング ファイル入出力関数についての講釈
PSPプログラミング fopen( ); のファイル・オープンモードのレポート
PSPプログラミング ファイル入出力関数まとめ
PSPプログラミング バッファド・ファイル入出力のまとめ(抜粋)
PSPプログラミング 低水準ファイル入出力のまとめ(抜粋)
PSPプログラミング メモリースティック内のファイル書き換え方法 その1
PSPプログラミング メモリースティック内のファイル書き換え方法 その2

関連記事
スポンサーサイト

[edit]

CM: 12
TB: 0

page top

この記事に対するコメント

結局エラーの違いだけということですか?

solve #- | URL | 2009/10/10 15:25 * edit *

solve 君へ。

ファイルの読み込み方で使い分けるのだだだっ!!

1バイトずつとか、一気にまとめ読み込みとか。

猫山猫宗 #Cv2s2L.A | URL | 2009/10/10 18:30 * edit *

あっそういうことですか!
わかりました。
ありがとうございます。
msfreespaceというプログラムで聞きたいことがあるのですが…

solve #- | URL | 2009/10/10 19:22 * edit *

solveくん

メールでもしてくれたまえ。
コメント欄では答えにくいではないかっ!

猫山猫宗 #XqdwbOcU | URL | 2009/10/10 19:34 * edit *

以前もメールしたのですが、エラーになってしまいます・・・

solve #- | URL | 2009/10/10 21:49 * edit *

やってみそ。

__extension__ typedef long long Int64;
↑↑↑
ってキャストを作ってから、

Int64 size;
size = 4294967296 * 2;

でおけlだったよん。

__extension__ long long Size;
↑↑
でも可能なハズ。

さぁ、明日は FreeSpace の最終版UP だなwww ソースちょうだい(笑)。

猫山猫宗 #2kbNzpR6 | URL | 2009/10/10 22:31 * edit *

これでも駄目でした…
表示をblit.hを使用した場合動きます。
メモリか何か関係しているのでしょうか?
ソースを見て欲しいのですが・・・

solve #- | URL | 2009/10/10 22:43 * edit *

ソース

くれるのか。 どんなエラーが起きるのかな?

スペルは あってるの?

猫山猫宗 #Cv2s2L.A | URL | 2009/10/10 22:58 * edit *

ちゃんとなってますよ^^
表示をblit使って公開しても良いけど見た目悪くなりますよね…
intだとOKでlong longだといけない理由が分かりません><

solve #- | URL | 2009/10/10 23:00 * edit *

だから、エクステンションと書いてもだめなのか?

__extension__ アンダーバー2個 書いてから long long

猫山猫宗 #/wjs9yUg | URL | 2009/10/10 23:22 * edit *

どんなエラーが出るのか、まったくわからんぞ。

エラーメッセージをコピペしてくれっ

猫山猫宗 #/wjs9yUg | URL | 2009/10/10 23:24 * edit *

もちろん書いてます。そしてスペルもあってます
コンパイル時のエラーではなく表示した際にフリーズします…

solve #- | URL | 2009/10/11 12:33 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/162-87c4f00b
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-03