cpp
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define BUFFSIZE 4096
int main(){
int n;
char buf[BUFFSIZE];
while((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0){
if(write(STDOUT_FILENO, buf, n) != n){
printf("write error\n");
exit(1);
}
}
if(n < 0){
printf("read error\n");
exit(1);
}
exit(0);
}
golang
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter(os.Stdout)
for {
data, _, err := r.ReadLine()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
if _, err = w.Write(data); err != nil {
fmt.Println(err)
os.Exit(1)
}
if _, err = w.WriteRune('\n'); err != nil {
fmt.Println(err)
os.Exit(1)
}
if err = w.Flush(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
return
}