### 進程輸入與輸出
每個進程操作系統都會分配三個文件資源,分別是標準輸入(STDIN)、標準輸出(STDOUT)和錯誤輸出(STDERR)。通過這些輸入流,我們能夠輕易得從鍵盤獲得數據,然后在顯示器輸出數據。
### 標準輸入
來自管道(Pipe)的數據也是標準輸入的一種,我們寫了以下的實例來輸出標注輸入的數據。
~~~
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
bytes, err := ioutil.ReadAll(os.Stdin)
if err != nil {
panic(err)
}
fmt.Println(string(bytes))
}
~~~
運行結果如下。
~~~
root@87096bf68cb2:/go/src# echo string_from_stdin | go run stdin.go
string_from_stdin
~~~
### 標準輸出
通過`fmt.Println()`把數據輸出到屏幕上,這就是標準輸出了,這里不太演示了。
### 錯誤輸出
程序的錯誤輸出與標準輸出類似,這里暫不演示。
了解完進程一些基礎概念,我們馬上要深入學習并發與并行的知識了。
- 前言
- 致謝
- 概述
- 使用代碼
- 使用Docker
- 進程基礎
- 進程是什么
- Hello World
- PID
- PPID
- 使用PID
- 進程名字
- 進程參數
- 輸入與輸出
- 并發與并行
- 進程越多越好
- 進程狀態
- 退出碼
- 進程資源
- 死鎖
- 活鎖
- POSIX
- Nohup
- 運行進程
- Go編程實例
- 衍生新進程
- 執行外部程序
- 復制進程
- 進程進階
- 文件鎖
- 孤兒進程
- 僵尸進程
- 守護進程
- 進程間通信
- 信號
- Linux系統調用
- 文件描述符
- Epoll
- 共享內存
- Copy On Write
- Cgroups
- Namespaces
- 項目實例Run
- 項目架構
- 代碼實現
- 注意事項
- 創建目錄權限
- 捕獲SIGKILL
- Sendfile系統調用
- 后記
- 參考書籍
- 項目學習
- 再次感謝