MCPcopy Create free account
hub / github.com/IoLanguage/io / UArray_readFromCStream_

Function UArray_readFromCStream_

libs/basekit/source/UArray_stream.c:22–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20}
21
22long UArray_readFromCStream_(UArray *self, FILE *fp) {
23 long totalItemsRead = 0;
24 long itemsPerBuffer = CHUNK_SIZE / self->itemSize;
25 UArray *buffer = UArray_new();
26 UArray_setItemType_(buffer, self->itemType);
27 UArray_setSize_(buffer, itemsPerBuffer);
28
29 if (!fp) {
30 perror("UArray_readFromCStream_");
31 return -1;
32 }
33
34 while (!feof(fp) && !ferror(fp)) {
35 size_t itemsRead;
36 UArray_setSize_(buffer, itemsPerBuffer);
37 itemsRead = UArray_fread_(buffer, fp);
38
39 totalItemsRead += itemsRead;
40 UArray_append_(self, buffer);
41 if (itemsRead != itemsPerBuffer)
42 break;
43 }
44
45 if (ferror(fp)) {
46 perror("UArray_readFromCStream_");
47 return -1;
48 }
49
50 UArray_free(buffer);
51 return totalItemsRead;
52}
53
54long UArray_readNumberOfItems_fromCStream_(UArray *self, size_t size,
55 FILE *stream) {

Callers 2

UArray_readFromFilePath_Function · 0.85
IoFile.cFile · 0.85

Calls 6

UArray_newFunction · 0.85
UArray_setItemType_Function · 0.85
UArray_setSize_Function · 0.85
UArray_fread_Function · 0.85
UArray_append_Function · 0.85
UArray_freeFunction · 0.85

Tested by

no test coverage detected