]> diplodocus.org Git - flac-archive/commitdiff
untested attempt to add error checking
author <epg@pretzelnet.org> <>
Sun, 8 Dec 2013 20:22:58 +0000 (12:22 -0800)
committer <epg@pretzelnet.org> <>
Sun, 8 Dec 2013 20:22:58 +0000 (12:22 -0800)
untested because, oh look, i never submitted any build rules!

apic-read.cc

index 0438a02..fd83ac8 100644 (file)
@@ -1,4 +1,5 @@
 #include <sys/stat.h>
+#include <sys/types.h>
 
 #include <fcntl.h>
 #include <stdio.h>
@@ -37,8 +38,19 @@ main(int argc, char **argv)
             (TagLib::ID3v2::AttachedPictureFrame *)(*it);
         TagLib::ByteVector data = frame->picture();
         int fd = open(argv[2], O_CREAT | O_WRONLY);
-        write(fd, data.data(), data.size());
-        close(fd);
+        ssize_t size = data.size();
+        ssize_t status = write(fd, data.data(), size);
+        if (status < 0) {
+            perror("write");
+            return 2;
+        }
+        if (status != size) {
+            fprintf(stderr, "wrote only %d bytes out of %d\n", status, size);
+            return 3;
+        }
+        if (close(fd) < 0) {
+            perror("close");
+        }
     }
 
   return 0;