0 標準輸入
1 標準輸出
2 標準錯誤輸出
&等同引自:
$ ls my.file no.such.file 1>file.both 2>file.both
從 file system 的角度來說,單一檔案在單一時間內,只能被單一的 fd 作寫入。
假如 stdout(1) 與 stderr(2) 都同時在寫入 file.both 的話,
則要看它們在寫入時否碰到同時競爭的情形了,基本上是"先搶先贏"的原則。
讓我們用周星馳式的"慢鏡頭"來看一下 stdout 與 stderr 同時寫入 file.out 的情形好了:
* 第 1, 2, 3 秒為 stdout 寫入
* 第 3, 4, 5 秒為 stderr 寫入
那麼,這時候 stderr 的第 3 秒所寫的資料就丟失掉了﹗
要是我們能控制 stderr 必須等 stdout 寫完再寫,或倒過來,stdout 等 stderr 寫完再寫,那問題就能解決。
但從技術上,較難掌控的,尤其是 fd 在作"長期性"的寫入時...
那,如何解決呢?所謂山不轉路轉、路不轉人轉嘛,
我們可以換乙個思維:將 stderr 導進 stdout 或將 stdout 導進 sterr ,而不是大家在搶同一份檔案,不就行了﹗
bingo﹗就是這樣啦:
* 2>&1 就是將 stderr 並進 stdout 作輸出
* 1>&2 或 >&2 就是將 stdout 並進 stderr 作輸出
於是,前面的錯誤操作可以改為:
$ ls my.file no.such.file 1>file.both 2>&1
或$ ls my.file no.such.file 2>file.both >&2
這樣,不就皆大歡喜了嗎? 呵~~~ ^_^
資訊的表示和儲存
練習文字資訊在計算機中的表示 無符號數和有符號數 數的定點表示和浮點表示 定點運算和浮點四則運算 binary二進位制 dec十進位制 oct八進位制 hex十六進製制 非十進位制轉換為十進位制 把非進製數首先寫成加權係數展開式,然後按十進位制加法規則求和。這種做法稱為 按權相加 法。十進位制轉換為...
2 1資訊儲存
每台計算機都有乙個字長,指明指標資料的標稱大小。32位機器字長為32位,64位機器字長為64位。資料型別 32位機器位元組數 64位機器位元組數 char11 short22 int4 4long48 char 48 float44 double88 大端法 最高有效位元組在最前面。小端法 最低有效...
刪除KEIL編譯資訊
我個人而言,在學習stm32的過程中,利用keil5mdk每次編譯完乙個程式,檔案裡就會生成好多的編譯資訊檔案 本來光核心的 通常只有2m左右,編譯完通常會膨脹到20m 而且學習之後,隨著學習進度,一般是不會再重新學習之前的程式的 僅我個人而言,因為已經學過了,除非很不紮實,不然實在沒必要再去學一次...