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