什么是标准输入,标准输出(stdin,stdout)
什么是標準輸入,標準輸出(stdin,stdout)?
要弄清什么是標準輸入輸出。首先需要弄懂什么是IO。
IO的I是Input的意思,O是output的意思。意味著輸入和輸出。
更確切的含義是
I:從外部設備輸入到內存
O:從內存輸出到外部設備
而標準輸入和標準輸出是干什么的?它們是用于IO的。
那么它們屬于IO的哪個部分?
內存?還是外部設備?
答案顯然是外部設備(邏輯上的外部設備,為什么?接著看)。
更具體的含義?
在linux操作系統中,外部設備用什么表示?是用文件。
linux中一切設備皆是文件!
因此標準輸入和輸出更具體的含義是文件。
它們是哪兩個文件?
它們是/dev/stdin這個文件和/dev/stdout這個文件。
也就是說所謂的標準輸入和標準輸出其實就是兩個linux下的文件。
linux的文件類型有:
1、普通文件2、字符設備文件3、塊設備文4、目錄文件
5、鏈接文件6、管道文件7、套接字文件
思考一下?它們是什么文件?它們在/dev目錄下,它們是設備文件嗎?
那么所謂的從標準輸入讀是什么意思?
邏輯上來看:
就是打開/dev/stdin這個文件,然后把這個文件里的內容讀進來。
輸出到標準輸出是什么意思?
邏輯上來看:
就是打開/dev/stdout這個文件,然后把內容輸出到這個文件里去。
為什么是從邏輯上來看?因為它們不是設備文件!!!
所以它們不代表一個設備。linux里一切皆是文件,設備是文件,但是文件不一定是設備!
那它們是什么文件?他們是鏈接文件。(可以用ls -l /dev來查看 l開頭的就是鏈接文件。)
什么是鏈接文件?文件內容是另一個文件的地址的文件稱為鏈接文件。
因此,打開、讀或者寫 /dev/stdin和/dev/stdout 實際上是打開、讀或者寫這兩個文件存放的地址對應的設備文件。
明白它們是鏈接文件不是設備文件有什么用?
明白這一點才能知道重定向失效的原理。
參考文章:什么是標準輸入,標準輸出(stdin,stdout)
總結
以上是生活随笔為你收集整理的什么是标准输入,标准输出(stdin,stdout)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标记语言 编程语言 脚本语言分别有哪些?
- 下一篇: 域socket(domain socke