Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write an array to file in C

Tags:

c

io

I have a 2 dimensional matrix:

char clientdata[12][128];

What is the best way to write the contents to a file? I need to constantly update this text file so on every write the previous data in the file is cleared.

like image 453
mugetsu Avatar asked Sep 03 '13 17:09

mugetsu


2 Answers

Since the size of the data is fixed, one simple way of writing this entire array into a file is using the binary writing mode:

FILE *f = fopen("client.data", "wb");
fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
fclose(f);

This writes out the whole 2D array at once, writing over the content of the file that has been there previously.

like image 130
Sergey Kalinichenko Avatar answered Sep 21 '22 15:09

Sergey Kalinichenko


I would rather add a test to make it robust ! The fclose() is done in either cases otherwise the file system will free the file descriptor

int written = 0;
FILE *f = fopen("client.data", "wb");
written = fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
if (written == 0) {
    printf("Error during writing to file !");
}
fclose(f);
like image 27
Mohamed ROMDANE Avatar answered Sep 19 '22 15:09

Mohamed ROMDANE