static FileType file_type_with_path(const char *path) { FileType type= _file_type_unrecognized; FILE *fp= fopen(path, "rb"); if(fp) { char *key= "begin"; int key_length= strlen(key); char buffer[128]; int length_read; length_read= fread(buffer, 1, key_length, fp); if(length_read==key_length && strncmp(key, buffer, key_length)==0) { type= _file_type_script; } else { /* in filtersm.h */ /* return is 16, 32, 64 or 0 (0 indicates an error) */ int version= header_version(fp, FALSE); if(version != 0) { type= _file_type_data; } } fclose(fp); } return type; }
void RecordSet::init (const byte_t* const ptr, ssize_t const size) { assert (EMPTY == version_); assert (size >= 0); assert (NULL != ptr || 0 == size); assert (NULL == ptr || 0 != size); if (gu_likely ((ptr && size))) { version_ = header_version (ptr, size); check_type_ = header_check_type (version_, ptr, size); } }