#define BUF_SIZE 1024
+/**
+ * \fn int main(int argc, char *argv[])
+ * \brief Entrypoint
+ */
int main(int argc, char *argv[])
{
int fd;
int num;
- char buf[BUF_SIZE+1];
+ char buf[BUF_SIZE];
if(argc < 2) {
printf("Usage: cat <file>\n");
return -1;
}
- //printf("Contents of `%s'\n", argv[1]);
fd = open(argv[1], OPENFLAG_READ);
if(fd == -1) {
printf("Unable to open '%s' for reading\n", argv[1]);
}
do {
- num = read(fd, BUF_SIZE, buf);
- //printf("num = %i\n", num);
- buf[num] = '\0';
- printf("%s", buf);
+ num = read(fd, buf, BUF_SIZE);
+ if(num < 0) break;
+ write(1, buf, num);
} while(num == BUF_SIZE);
close(fd);