coreutils5.0 echo.c原始碼分析
隨便翻翻,因為前幾天學習了sort的用法,想讀讀sort.c的**,一開啟,完全看不懂,因為資料結構中,內部排序我懂了,但外部排序我不懂,看樣子,作者好像是用到了外部排序。於是果斷的略過。
然後再找**少的來讀,開啟
echo.c的**。
**是簡單的,如果沒有引數就只是把引數直接列印出來。
但如果加選項,象
./echo -e "a\tbb"
是在**處理選項的呢?我開始沒找到,後來直接搜尋
\才找到,然後設計了變數do_v9=1
再在後面判斷,當字串中有
\t時,變為'\t'
這段**很繞的。
while((c=*s++))
}當時,使用勁在想,如果c指向"a\tbb"中的'\'
那什麼時候又變為t呢??然後在while語句中,s++了。搞了半天才想明白。
這篇文章有湊字數的嫌疑了。哈哈。
coreutils5 0 split c原始碼分析
coreutils5.0 split.c原始碼分析 接著開啟split.c,先測試一下用法。a.3的內容如下12 345.split l 3 a.3 xaa123 xab4 5看來,按行拆分好理解的。於是,我就找按行拆分的 方法。先從頭到尾逛一下,翻到main時,先從getopt分析命令列引數中,找...
coreutils5 0 paste c原始碼分析
coreutils5.0 paste.c原始碼分析 時間過得真快,一晃又到中餐時間了。我要趕緊再寫一篇。先說paste的用法。paste s 把每個檔案變成一行,再把兩個檔案合在一起。paste s d a1 a2 此時,a1中每一行末尾的 n用 來進行分隔。然後再看相應功能在程式中是如何實現的。先...
coreutils 5 0中幾個命令的執行過程
uname是怎麼執行的?隨手在鍵盤敲擊乙個uname a,系統資訊就出來了 linux my 2.6.8 2 686 smp 1 smp tue aug 16 12 08 30 utc 2005 i686 unknown unknown gnu linux 可是執行該命令時,系統究竟做了什麼?如果查...