File output is basically memcpy to the filesystem.
#include <stdio.h>
#include <memory.h>
#include <errno.h>
typedef struct employee_t {
char name[40];
int onsite;
struct {
int floor;
char quadrant;
int cube;
} location;
} employee;
const char * const filename = "/tmp/employees";
int main( int argc, const char **argv ) {
employee me;
size_t bytes;
FILE *fp;
memset( &me, 0, sizeof( me ) );
strcpy( me.name, "Andy Lester" );
me.location.floor = 4;
me.location.quadrant = 'B';
me.location.cube = 14;
me.onsite = 1;
fp = fopen( filename, "w" );
if ( !fp ) {
printf( "Couldn't create %s: %d\n", filename, errno );
}
bytes = fwrite( (const void *)&me, sizeof(me), 1, fp );
if ( bytes < 1 ) {
printf( "Only wrote out %lu bytes, not %lu bytes\n", bytes, sizeof(me) );
}
fclose( fp );
return 0;
}
0000000: 416e 6479 204c 6573 7465 7200 0000 0000 Andy Lester..... 0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000020: 0000 0000 0000 0000 0100 0000 0400 0000 ................ 0000030: 4200 0000 0e00 0000 B.......TOC | Prev