00001
00017 #include <unistd.h>
00018 #include <grass/gis.h>
00019
00020
00029 int G_write_zeros(int fd, size_t n)
00030 {
00031 char zeros[1024];
00032 char *z;
00033 int i;
00034
00035 if (n <= 0)
00036 return 0;
00037
00038
00039
00040
00041
00042
00043
00044
00045 if (n > sizeof(zeros))
00046 i = sizeof(zeros);
00047 else
00048 i = n;
00049
00050 z = zeros;
00051 while (i--)
00052 *z++ = 0;
00053
00054
00055 while (n > 0) {
00056 if (n > sizeof(zeros))
00057 i = sizeof(zeros);
00058 else
00059 i = n;
00060
00061 write(fd, zeros, i);
00062 n -= i;
00063 }
00064
00065 return 0;
00066 }