]> git.llucax.com Git - z.facultad/75.06/jacu.git/commitdiff
Se termina de implementar vfread() y vfwrite. Falta testeo.
authorLeandro Lucarella <llucax@gmail.com>
Sun, 20 Jun 2004 06:17:58 +0000 (06:17 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 20 Jun 2004 06:17:58 +0000 (06:17 +0000)
src/vfile/vfile.c

index aafb8514715b07632dd4a979d66e314eab0e742f..05ef241f71da76a48727626fff0bac7bbcb63853 100644 (file)
@@ -127,12 +127,20 @@ int vfputc(int c, VFILE* vfp)
 
 size_t vfread(void* ptr, size_t size, size_t nmemb, VFILE* vfp)
 {
 
 size_t vfread(void* ptr, size_t size, size_t nmemb, VFILE* vfp)
 {
-       return 0;
+       int i;
+       size_t total = size * nmemb;
+       /* leo uno a uno y si hay error salgo. */
+       for (i = 0; i < total && (((char*)ptr)[i] = vfgetc(vfp)) != EOF; ++i);
+       return i % size;
 }
 
 size_t vfwrite(const void *ptr, size_t size, size_t nmemb, VFILE* vfp)
 {
 }
 
 size_t vfwrite(const void *ptr, size_t size, size_t nmemb, VFILE* vfp)
 {
-       return 0;
+       int i;
+       size_t total = size * nmemb;
+       /* escribo uno a uno y si hay error salgo. */
+       for (i = 0; i < total && (vfputc(((char*)ptr)[i], vfp)) != EOF; ++i);
+       return i % size;
 }
 
 int vfvol_close(VFILE* vfp)
 }
 
 int vfvol_close(VFILE* vfp)