因為此次作業需要有Error Handler,而在作業要求中,好像又沒有講得很清楚
所以在此提出目前有碰到 + 想到的一些可能狀況:
1. Redirect Operation 後面保證只有一個檔案名稱嗎?
例如說,後面會不會再有|(param) 或是 |(number) 的case?
2. Advanced Pipe Command 保證是在一行指令的末端嗎?
例如說,後面會不會再有|(param) 或是 |(number) 的case?
3. 今天下課時有問到output內容是否有上限,當時助教的回答是沒有,
所以我們會有需要自行維護 pipe_capacity 的問題嗎?
還是可以提供一個確切的output的大小限制呢?
4. PATH的部份是只關心執行檔的位置? 就跟一般Shell中意義一樣嗎?
假設在 "PATH=bin:." 下 "./server" :
|-server
|-text_0
|-bin/
|-cat
|-text_1
那麼當Client輸入"cat text_0"的時候應該成功,而"cat text_1"則會失敗?
5. 不論Client或是Srver端的出現Error,都是一律導向Client印出並結束兩邊的程式嗎?
還是只忽視該Client的單次操作?亦或是只關閉該Client端?
6. 會有不完整或是不合法指令的測資嗎?
還是我都可以等到執行指令、發生錯誤之後,再來做處理?
7. 會有多個延遲Input同時指到另一個Command的case嗎?
例如說:
blabla |3
blabla |2
blabla |1
blabla
又該怎麼處理呢?
8. 可以使用額外的Shell Command嗎?
只是用來協助維護Buffer,例如:stdbuf,會只使用fork + exec呼叫.
9. server最後的位置是放在./下嗎?
另外,我如果有其他檔案是fork時候會使用到的,應該不必遵守path的規則吧?
也就是說,與server處理與實作的相關檔案都應該一定找得到?
10. 投影片上面寫到: You cannot use C++ Standard Template Library (STL).
這句話的意思是指連最基本的string, vector都不能使用嗎?
在字串處理和輸入輸出的維護上面,如果能夠使用工具會方便很多.
希望助教能幫忙回答一下~感謝! <(_ _)>