Lines Matching defs:file
279 static int bof_read(bof_t *root, FILE *file, long end, int level)
284 if (ftell(file) >= end) {
293 bof->offset = ftell(file);
294 r = fread(&bof->type, 4, 1, file);
297 r = fread(&bof->size, 4, 1, file);
300 r = fread(&bof->array_size, 4, 1, file);
311 r = fread(bof->value, bof->size - 12, 1, file);
321 r = bof_read(bof, file, bof->offset + bof->size, level + 2);
330 return bof_read(root, file, end, level);
345 root->file = fopen(filename, "r");
346 if (root->file == NULL)
348 r = fseek(root->file, 0L, SEEK_SET);
350 fprintf(stderr, "%s failed to seek into file %s\n", __func__, filename);
353 root->offset = ftell(root->file);
354 r = fread(&root->type, 4, 1, root->file);
357 r = fread(&root->size, 4, 1, root->file);
360 r = fread(&root->array_size, 4, 1, root->file);
363 r = bof_read(root, root->file, root->offset + root->size, 2);
390 if (bof->file) {
391 fclose(bof->file);
392 bof->file = NULL;
399 static int bof_file_write(bof_t *bof, FILE *file)
404 r = fwrite(&bof->type, 4, 1, file);
407 r = fwrite(&bof->size, 4, 1, file);
410 r = fwrite(&bof->array_size, 4, 1, file);
421 r = fwrite(bof->value, bof->size - 12, 1, file);
428 r = bof_file_write(bof->array[i], file);
444 if (bof->file) {
445 fclose(bof->file);
446 bof->file = NULL;
448 bof->file = fopen(filename, "w");
449 if (bof->file == NULL) {
450 fprintf(stderr, "%s failed to open file %s\n", __func__, filename);
454 r = fseek(bof->file, 0L, SEEK_SET);
456 fprintf(stderr, "%s failed to seek into file %s\n", __func__, filename);
459 r = fwrite(&bof->type, 4, 1, bof->file);
462 r = fwrite(&bof->size, 4, 1, bof->file);
465 r = fwrite(&bof->array_size, 4, 1, bof->file);
469 r = bof_file_write(bof->array[i], bof->file);
474 fclose(bof->file);
475 bof->file = NULL;