Re: [ CN ] 有關作業一Spec

作者: ckmShih (林檎技客 Ringo Geek)   2013-10-20 12:20:39
※ 引述《wrangle1005 (Hogan)》之銘言:
: 因為此次作業需要有Error Handler,而在作業要求中,好像又沒有講得很清楚
: 所以在此提出目前有碰到 + 想到的一些可能狀況:
: 1. Redirect Operation 後面保證只有一個檔案名稱嗎?
: 例如說,後面會不會再有|(param) 或是 |(number) 的case?
Redirect Operation (>) 後面只會接檔案名稱
: 2. Advanced Pipe Command 保證是在一行指令的末端嗎?
: 例如說,後面會不會再有|(param) 或是 |(number) 的case?
|(number) 只會出現在指令的最末端
: 3. 今天下課時有問到output內容是否有上限,當時助教的回答是沒有,
: 所以我們會有需要自行維護 pipe_capacity 的問題嗎?
: 還是可以提供一個確切的output的大小限制呢?
只有指令本身不會超過 1024 bytes 長度
output 不能保證
: 4. PATH的部份是只關心執行檔的位置? 就跟一般Shell中意義一樣嗎?
: 假設在 "PATH=bin:." 下 "./server" :
: |-server
: |-text_0
: |-bin/
: |-cat
: |-text_1
: 那麼當Client輸入"cat text_0"的時候應該成功,而"cat text_1"則會失敗?
PATH 部分只會影響執行檔的位置
上述同學的例子 "cat text_0" 會印出 text_0 的內容
"cat text_1"的話 cat 會回傳錯誤訊息
: 5. 不論Client或是Srver端的出現Error,都是一律導向Client印出並結束兩邊的程式嗎?
: 還是只忽視該Client的單次操作?亦或是只關閉該Client端?
出現錯誤訊息要顯示在 Client
例如 bin 裡面沒有 grep 的話 (PATH=bin)
Client 下 "grep" 指令
Server 應該回傳錯誤訊息給 Client
但不能關閉 Client 端
需繼續接受下一個指令
: 6. 會有不完整或是不合法指令的測資嗎?
: 還是我都可以等到執行指令、發生錯誤之後,再來做處理?
可能會有不完整或是不合法指令
你可以事先過濾或餵給 exec 執行出現錯誤會在處理都可以
pipe 中若遇到錯誤指令該行就完全放棄
例如
Client:dsgdsg | grep ds
Server:dsgdsg: command not found
因為系統沒有 dsgdsg 指令故會回傳錯誤訊息給 Client
該行後面的 "grep ds" 也會放棄執行
: 7. 會有多個延遲Input同時指到另一個Command的case嗎?
: 例如說:
: blabla |3
: blabla |2
: blabla |1
: blabla
: 又該怎麼處理呢?
有可能
必須三行都處理
例如
% 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'
: 8. 可以使用額外的Shell Command嗎?
: 只是用來協助維護Buffer,例如:stdbuf,會只使用fork + exec呼叫.
不可以
exec 只能用來執行指令 (ls, grep, etc.)
: 9. server最後的位置是放在./下嗎?
: 另外,我如果有其他檔案是fork時候會使用到的,應該不必遵守path的規則吧?
: 也就是說,與server處理與實作的相關檔案都應該一定找得到?
其他檔案是fork時候會使用到的?是指 tmpfile 嗎?
請注意 pipe (|) 是不能用 tmpfile 實作的
測試時初始環境只會有指令執行檔跟測試用文字檔
例如
bin/
| ls
| grep
| cat
test.txt
: 10. 投影片上面寫到: You cannot use C++ Standard Template Library (STL).
: 這句話的意思是指連最基本的string, vector都不能使用嗎?
: 在字串處理和輸入輸出的維護上面,如果能夠使用工具會方便很多.
就如字面上所述
所有屬於 C++ STL 的組件都不能使用
: 希望助教能幫忙回答一下~感謝! <(_ _)>
TA

Links booklink

Contact Us: admin [ a t ] ucptt.com