FILE* fp = fopen([self.someStringPaht fileSystemRepresentation], "w");

stringはfopenには指定できない。 const char*型のパス文字列に変換してから渡す なのでfileSystemRepresentationを使う。

-fileSystemRepresentationは 動作中のOSに適切なファイルパス文字列をC文字列として戻してくれる。

iOSやOSXで扱うC文字列は, UTF-8でエンコードされたunicode

標準Cライブラリ

fopen

モード ファイルが存在する場合 ファイルが存在しない場合 用途 読み出し初期位置 書き出し初期位置
r そのまま利用する fopenは失敗する 読み出しのみ 先頭 x
r+ そのまま利用する fopenは失敗する 読み書き 先頭 先頭
w ファイルの大きさを0に戻してから利用する 新たに作成する 書き出しのみ x 先頭
w+ ファイルの大きさを0に戻してから利用する 新たに作成する 読み書き 先頭 先頭
a そのまま利用する 新たに作成する 書き出しのみ x 先頭
a+ そのまま利用する 新たに作成する 読み書き 先頭 先頭

削除

標準Cライブラリ

int remove(const char *path)

成功: 0、失敗: -1 pathにはファイルパス文字列

if (remove([yourFilePath fileSystemRepresentation])) {
  //  removeでエラーが発生している。ログを出してNOで戻る。
  NSLog(@"旧バージョンのファイルの削除に失敗しました。error = %d", errno);
  return NO;
}

NSFileManager

その他

size_t

http://manabu.quu.cc/up/3/e31555.htm

C言語では、長さ、大きさ、サイズを表現する型として、 size_t の名前の型が使われます。 sizeof演算子や、strlen関数など、byte数や長さを表現するところで使われる型です。 この型は、で定義される型ですが、通常はをインクルードすれば使えるようになる型です。

byte列で保存したファイルの中身を見る方法

hexdump

hexdump /Users/moretajoo/Library/Application\ Support/iPhone\ Simulator/7.1/Applications/xxxx-xxxx-xxxx-xx/Library/Yourbytefile

0000000 01 00 00 00
0000004

magic number

確認 hexdump -C -n16

-C : 値に対応するASCII文字コードを表示させる指定

ex)

PNGの先頭8バイト

89 50 4e 47 0d 0a 1a 0a

89 : ネットワーク通信などでファイルが壊れていないかを確認するための値 50 4e 47 : P N G 0d 0a 1a 0a : 誤ってテキストエディタで開かれた時の対策

16進表記

10進表記と16進表記が混在するときには、16進表記側に0xという接頭辞をつけることで区別する。

10 : 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 16 : 1,2,3,4,5,6,7,8,9, A, B, C, D, E, F,10,11

10    10進表記の 10
0x10  16進表記の10, 10進表記では16

endianness(エンディアン) - ビッグエンディアン/リトルエディアン

エンディアンネス 、バイト順、バイトオーダ(byte order)ともいる

results matching ""

    No results matching ""