首页 > 代码库 > how to write a struct to a file directly?

how to write a struct to a file directly?

Using write and read system call. Following is an example:

blk.h:

#include <stdlib.h>#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>struct data{    char s[20];    int d1;    char c;};#define BLK_SIZE 25

writeb.c:

#include "blk.h"int main(){    struct data *d= malloc(BLK_SIZE);    d->d1= 8;    d->c= a;    strcpy(d->s, "first try..");    int fd= open("blk.dat", O_RDWR | O_CREAT | O_EXCL, S_IREAD | S_IWRITE);    write(fd, d, BLK_SIZE);    printf("writed!\n");    close(fd);    return 0;}

readb.c:

include "blk.h"int main(){    int fd;    struct data *d;    fd= open("blk.dat", O_RDWR);    read(fd, d, BLK_SIZE);    printf("%d, %c, %s\n", d->d1, d->c, d->s);    close(fd);    return 0;}

 

how to write a struct to a file directly?