將標準輸入複製到標準輸出

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
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章