※ 引述《wrangle1005 (Hogan)》之銘言:
: ※ 引述《ckmShih (林檎技客 Ringo Geek)》之銘言:
: : 有可能
: : 必須三行都處理
: : 例如
: : % cat text1.txt |3
: : % cat text2.txt |2
: : % cat text3.txt |1
: : % grep 'body'
: : 則在第四行 Server 必須回傳等同以下指令之結果
: : cat text1.txt | grep 'body'
: : cat text2.txt | grep 'body'
: : cat text3.txt | grep 'body'
: 所以client收到結果的時候有可能不保證順序性?
: 畢竟shell command可能會有自己速度上的差異?
順序要保證 First In, First Out
也就是
cat text1.txt | grep 'body'
cat text2.txt | grep 'body'
cat text3.txt | grep 'body'
順序不能顛倒或亂序
: : 不可以
: : exec 只能用來執行指令 (ls, grep, etc.)
: 問題已經解決,是我自己沒寫好所導致的
: : 其他檔案是fork時候會使用到的?是指 tmpfile 嗎?
: : 請注意 pipe (|) 是不能用 tmpfile 實作的
: : 測試時初始環境只會有指令執行檔跟測試用文字檔
: : 例如
: : bin/
: : | ls
: : | grep
: : | cat
: : test.txt
: 抱歉,我當時問問題的時候腦筋不太清楚,問得不夠明確
: 這裡我指的是我用來處理client指令的handler
: 我覺得用一隻server程式處理完所有的指令和重導向聽起來不甚合理
: 所以我會使用server,fork出handler來進行後面的操作處理
: 我預期server和handler會在同一目錄底下,並且都接受PATH這個參數
server 跟 fork 出來之 handler 的工作目錄理論上會是同一個
PATH 的部分也是一樣的
這個是你自己程式可以控制的
: : 就如字面上所述
: : 所有屬於 C++ STL 的組件都不能使用
: 我可以請問一下這個要求的原因嗎?
: 我覺得使用string, vector等工具並不會影響這次作業的公平性以及主旨
: 不能使用工具會大幅度拖慢開發速度..
應該是說這次作業基本上以 C 語言為主
我們開放使用 C++ 的基本語法方便慣用物件導向的同學使用
但 STL 的部份還是恕不能使用
: 另外,想再請問一下,應該不會有"grep s", "cat -n",這種無限等待input的測資吧?
不會出現無限等待 client input 測資
也就是可能會有
%cat "test.txt" | grep s
但不會單獨只有
%grep s
: 謝謝!
TA