Read 20 512-byte blocks at a time (like GNU tar).
diff --git a/tar.c b/tar.c
index 4702a5f..31443ee 100644
--- a/tar.c
+++ b/tar.c
@@ -330,7 +330,7 @@
 	size_t  writeSize;
 	size_t  readSize;
 	size_t  actualWriteSz;
-	char    buffer[BUFSIZ];
+	char    buffer[20 * TAR_BLOCK_SIZE];
 	size_t  size = header->size;
 	int outFd=fileno(stdout);
 
@@ -354,9 +354,9 @@
 		if ( size > sizeof(buffer) )
 			writeSize = readSize = sizeof(buffer);
 		else {
-			int mod = size % 512;
+			int mod = size % TAR_BLOCK_SIZE;
 			if ( mod != 0 )
-				readSize = size + (512 - mod);
+				readSize = size + (TAR_BLOCK_SIZE - mod);
 			else
 				readSize = size;
 			writeSize = size;