作者  fcamel (飛啊!書呆的小駱駝)  看板   P_fcamel
 標題  [C]   fread / fwrite
 時間  Thu Mar 20 13:09:51 2003


fread / fwrite可以把資料以binary的形式寫入file,
所以用來讀寫struct是再好不過,
記得注意big-endian / little-endian的問題即可

分別在ccsun, ccbsd執行fread.c看看 :)
chlo@ccbsd1 [1:07pm] ~> echo 84148993 | ./fwrite > tout 1 3 4 5 chlo@ccbsd1 [1:08pm] ~> ./fread < tout 84148993 1 3 4 5
{chlo@ccsun1}~> gcc fread.c -o fread_sun {chlo@ccsun1}~> ./fread_sun < tout 16974853 1 3 4 5
source:
fwrite.c: #include <stdio.h> typedef struct { int n; } Num; int main(void) { Num a; int i; char *s; scanf("%d", &a.n); fwrite(&a, sizeof(a), 1, stdout); s = (char*)&a.n; for (i=0; i<4; i++) fprintf(stderr, "%u ", s[i]%256); fprintf(stderr, "\n"); return 0; }
fread.c: #include <stdio.h> typedef struct { int n; } Num; int main(void) { Num a; int i; char *s; fread(&a, sizeof(a), 1, stdin); printf("%d\n", a.n); s = (char*)&a.n; for (i=0; i<4; i++) fprintf(stderr, "%u ", s[i]%256); fprintf(stderr, "\n"); return 0; }