作者 | 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;
}
|