Для моего класса ОС у меня есть задание реализовать команду Unix cat с системными вызовами (без scanf или printf). Вот что я получил до сих пор:
(Отредактировано благодаря ответам)
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
main(void)
{
int fd1;
int fd2;
char *buffer1;
buffer1 = (char *) calloc(100, sizeof(char));
char *buffer2;
buffer2 = (char *)calloc(100, sizeof(char));
fd1 = open("input.in", O_RDONLY);
fd2 = open("input2.in", O_RDONLY);
while(eof1){ //<-lseek condition to add here
read (fd1, buffer1, /*how much to read here?*/ );
write(1, buffer1, sizeof(buffer1)-1);
}
while (eof2){
read (fd2,buffer2, /*how much to read here?*/);
write(1, buffer2, sizeof(buffer2)-1);
}
}
Примеры, которые я видел, показывают чтение только с известным количеством байтов. Я не знаю, сколько байтов будет иметь каждый из прочитанных файлов, так как мне указать последний параметр чтения?