type | データ型 |
"char" | 文字 (8 bits) |
"signed char" | 符合あり文字 (8 bits) |
"unsigned char" | 符合なし文字 (8 bits) |
"short" | 整数 (16 bits) |
"signed short" | 符合あり整数 (16 bits) |
"unsigned short" | 符合なし整数 (16 bits) |
"int" | 整数 (16,32,64 bits) |
"signed int" | 符合あり整数 (16,32,64 bits) |
"unsigned int" | 符合なし整数 (16,32,64 bits) |
"long" | 整数 (32 bits) |
"signed long" | 符合あり整数 (32 bits) |
"unsigned long" | 符合なし整数 (32 bits) |
"float" | 単精度浮動小数点数 (32 bits) |
"double" | 倍精度浮動小数点数 (32 bits) |
行列の成分をint型のバイナリでファイルに保存し,
そのデータを別の行列に読み込む例を以下に示す。
// 行列 A を int 型のバイナリデータとして保存する A = [1 2 3 4 5]; fd = fopen("data", "w"); fwrite(fd, A, "int"); fclose(fd); // 5 個の int 型のバイナリデータを行列 B に読み込む fd = fopen("data", "r"); B = fread(fd, 5, "int"); fclose(fd); // 3 個の double 型のバイナリデータをEndianを変更 // して行列 C に読み込む fd = fopen("data", r"); C = fread(fd, 3, "double", 1); fclose(fd);
なお,使用中の計算機のバイナリの数値形式(Endian)は,関数 machine_endian()で調べることができる。この関数は IEEE Little Endian (PC, 386, 486, etc.)のとき 0 を返し, IEEE Big Endian (SPARC, Motorola, etc.)のとき 1 を返す。