#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#define BUFFER_SIZE 4096
int main() {
// Use block I/O
char buff[BUFFER_SIZE];
int firstLine = 1;
size_t numRead;
while((numRead = read(STDIN_FILENO, buff, BUFFER_SIZE))!=0) {
if(numRead==-1) {
perror("read");
return 1;
}
size_t writePos = 0;
// Skip first line
if(firstLine) {
while(writePos<numRead) {
if(buff[writePos++]=='\n') {
firstLine = 0;
break;
}
}
}
while(writePos<numRead) {
size_t numWritten = write(STDOUT_FILENO, buff+writePos, numRead-writePos);
if(numWritten==-1) {
perror("write");
return 1;
}
writePos += numWritten;
}
}
return 0;
}