Я создал C программу, которая делает то же, что и команда cat
, но столкнулся с проблемой. Теперь это хорошо работает при добавлении нескольких файлов в качестве входных данных. Теперь он не показывает, что было прочитано в stdin
, когда я не помещаю файл в качестве параметра. Как я могу это исправить?
#include<stdio.h>
#include<fcntl.h>
#include<stdarg.h>
#include<stdlib.h>
#include "ourhdr.h"
#define BUFFSIZE 8192
int main(int argc,char *argv[])
{
int fd;
int n;
char* index=argv[0];
char buf[BUFFSIZE];
if(argc ==1)
{
printf("<sintaxa> fisier1 fisier2....\n");
}
else
while(--argc>0)
{
if((fd = open(*++argv,O_RDONLY)) == -1)
{
printf("%s: %s: No such file or directory\n",index,*argv);
}
else
{
while((n=read(fd,buf,BUFFSIZE)) > 0)
if(write(STDOUT_FILENO,buf,n) != n)
{
err_sys("write error");
}
if(n<0)
{
err_sys("read error");
}
close(fd);
}
}
return 0;
}