Question: C Program Only Retrieving a GIS Record Located at a Given File Offset You will implement the following function in C, and place the implementation
C Program Only
Retrieving a GIS Record Located at a Given File Offset
You will implement the following function in C, and place the implementation in a file named recordRetriever.c:
Returns the GIS record at the given offset.
Pre: gisFile is open on a GIS record file
offset is a valid offset for the given GIS record file
Returns: a valid C-string holding the specified GIS record
char* retrieveRecord(FILE* gisFile, uint32_t offset);
Assumptions you may make in designing your solution:
The GIS record file will correspond exactly to the description given earlier, but it will be a different file than the one shown earlier in this specification.
No line in the GIS record file will be longer than 500 characters, including the line terminator.
The caller will ensure that all the stated preconditions are true.
Use int fseek(FILE* stream, long offset, int whence) and void* calloc(size_t nelem, size_t elsize); to implement this function.
GISData.txt file
FEATURE_ID|FEATURE_NAME|FEATURE_CLASS|STATE_ALPHA|STATE_NUMERIC|COUNTY_NAME|COUNTY_NUMERIC|PRIMARY_LAT_DMS|PRIM_LONG_DMS|PRIM_LAT_DEC|PRIM_LONG_DEC|SOURCE_LAT_DMS|SOURCE_LONG_DMS|SOURCE_LAT_DEC|SOURCE_LONG_DEC|ELEV_IN_M|ELEV_IN_FT|MAP_NAME|DATE_CREATED|DATE_EDITED 885513|Siegrest Draw|Valley|NM|35|Eddy|015|323815N|1043256W|32.6376116|-104.5488549|323859N|1043732W|32.6498321|-104.6255227|1095|3592|Parish Ranch|11/13/1980| 885526|AAA Tank|Reservoir|NM|35|Eddy|015|321043N|1041456W|32.1786543|-104.2489615|||||1006|3300|Bond Draw|11/13/1980|06/23/2011 885566|Adobe Draw|Valley|NM|35|Eddy|015|322820N|1042141W|32.4723375|-104.361345|322704N|1042129W|32.4511111|-104.3580556|1007|3304|Carlsbad West|11/13/1980| 885567|Adobe Flat|Flat|NM|35|Eddy|015|322849N|1042119W|32.4803932|-104.3552339|||||1006|3300|Carlsbad West|11/13/1980| 885607|Alacran Hills|Range|NM|35|Eddy|015|322812N|1041055W|32.4701183|-104.1818931|||||1009|3310|Carlsbad East|11/13/1980| 885684|Alkali Lake|Lake|NM|35|Eddy|015|323039N|1041133W|32.5109371|-104.1924802|||||966|3169|Angel Draw|11/13/1980|06/23/2011 885697|Allen Well|Well|NM|35|Eddy|015|322309N|1042120W|32.3859489|-104.3555084|||||1038|3405|Carlsbad West|11/13/1980| 885746|Anderson Young Ranch|Locale|NM|35|Eddy|015|325046N|1044615W|32.8462175|-104.7708042|||||1277|4190|Sixteenmile Draw East|11/13/1980| 885751|Andrews Well|Well|NM|35|Eddy|015|322531N|1040553W|32.4253974|-104.0980001|||||958|3143|Indian Flats|11/13/1980| 885753|Angel Draw|Valley|NM|35|Eddy|015|323344N|1041109W|32.5623397|-104.1857846|323423N|1041406W|32.5730556|-104.235|985|3232|Angel Draw|11/13/1980|
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
