summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexample/mainbin0 -> 50808 bytes
-rw-r--r--example/main.c4
-rw-r--r--example/main.obin0 -> 2960 bytes
-rw-r--r--example/test.matbin320 -> 320 bytes
-rw-r--r--include/matfile.h1
-rw-r--r--src/libMatfile.abin0 -> 2600 bytes
-rwxr-xr-xsrc/libMatfile.so.1.1bin0 -> 33824 bytes
-rw-r--r--src/matfile.c14
-rw-r--r--src/matfile.obin0 -> 2336 bytes
9 files changed, 16 insertions, 3 deletions
diff --git a/example/main b/example/main
new file mode 100755
index 0000000..6bab08a
--- /dev/null
+++ b/example/main
Binary files differ
diff --git a/example/main.c b/example/main.c
index ef7e0dd..15ac62e 100644
--- a/example/main.c
+++ b/example/main.c
@@ -70,7 +70,7 @@ void write_int_array(FILE *fp) {
array.type = miMATRIX;
array.size = 80;
- fwrite((void *)&array, 1, sizeof(array), fp);
+ write_tag(fp, array);
write_data(fp, flags_data);
write_data(fp, dim_data);
write_small_data(fp, name);
@@ -113,7 +113,7 @@ void write_double_array(FILE *fp) {
array.type = miMATRIX;
array.size = 96;
- fwrite((void *)&array, 1, sizeof(array), fp);
+ write_tag(fp, array);
write_data(fp, flags_data);
write_data(fp, dim_data);
write_data(fp, name);
diff --git a/example/main.o b/example/main.o
new file mode 100644
index 0000000..e564b93
--- /dev/null
+++ b/example/main.o
Binary files differ
diff --git a/example/test.mat b/example/test.mat
index 45738ab..a733ddb 100644
--- a/example/test.mat
+++ b/example/test.mat
Binary files differ
diff --git a/include/matfile.h b/include/matfile.h
index b92cd3a..6f062b1 100644
--- a/include/matfile.h
+++ b/include/matfile.h
@@ -91,6 +91,7 @@ typedef struct {
} mArrayFlags_t;
bool write_header(FILE *file);
+bool write_tag(FILE *file, mTag_t tag);
bool write_data(FILE *file, mData_t data);
bool write_small_data(FILE *file, mSmallData_t data);
diff --git a/src/libMatfile.a b/src/libMatfile.a
new file mode 100644
index 0000000..89a3b80
--- /dev/null
+++ b/src/libMatfile.a
Binary files differ
diff --git a/src/libMatfile.so.1.1 b/src/libMatfile.so.1.1
new file mode 100755
index 0000000..a09e26d
--- /dev/null
+++ b/src/libMatfile.so.1.1
Binary files differ
diff --git a/src/matfile.c b/src/matfile.c
index c6da630..85af901 100644
--- a/src/matfile.c
+++ b/src/matfile.c
@@ -32,8 +32,16 @@ bool write_header(FILE *file) {
return (status == sizeof(header));
}
+bool write_tag(FILE *file, mTag_t tag) {
+ if (file == NULL) {
+ return false;
+ }
+
+ return (fwrite((const void *)&tag, 1, sizeof(tag), file) == sizeof(tag));
+}
+
bool write_data(FILE *file, const mData_t data) {
- if (data.data == NULL) {
+ if (data.data == NULL || file == NULL) {
return false;
}
@@ -51,6 +59,10 @@ bool write_data(FILE *file, const mData_t data) {
}
bool write_small_data(FILE *file, const mSmallData_t data) {
+ if (file == NULL) {
+ return false;
+ }
+
const size_t w = fwrite((const void *)&data, 1, sizeof(data), file);
return (w == sizeof(data));
diff --git a/src/matfile.o b/src/matfile.o
new file mode 100644
index 0000000..e437d4d
--- /dev/null
+++ b/src/matfile.o
Binary files differ