Schreiben Sie unter Linux eine Ganzzahl in eine Datei und eine Struktur in eine Datei

Achten Sie zunächst auf ssize_t read(int fd, void *buf, size_t count); der zweite Parameter ist die Adresse, nehmen Sie die Adresse nach der Definition der Ganzzahl

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>


int main()
{
        int data = 100;
        int data2 = 0;
        int fd;

        fd = open("./file1",O_RDWR);


        int n_write = write(fd,&data,sizeof(int));
        lseek(fd,0,SEEK_SET);


        int n_read = read(fd,&data2,sizeof(int));

        printf("read:%d\n",data2);
        close(fd);

        return 0;
}

Sie können eine Struktur oder mehrere Strukturen schreiben. Das hier verwendete Strukturarray ist

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

struct Test
{
        int a;
        char c;
};
int main()
{
        struct Test data[2] = {
   
   {100,'C'},{101,'b'}};
        struct Test data2[2];
        int fd;

        fd = open("./file1",O_RDWR);


        int n_write = write(fd,&data,sizeof(struct Test)*2);
        lseek(fd,0,SEEK_SET);


        int n_read = read(fd,&data2,sizeof(struct Test)*2);

        printf("read:%d,%c\n",data2[0].a,data2[0].c);
        printf("read:%d,%c\n",data2[1].a,data2[1].c);
        close(fd);

        return 0;
}

おすすめ

転載: blog.csdn.net/qq_44848795/article/details/123568166