现在的位置: 首页 > 综合 > 正文

刚看到一个暴强的面试,转一下

2012年06月02日 ⁄ 综合 ⁄ 共 1580字 ⁄ 字号 评论关闭
刚看到一个暴强的面试,转一下。

A:请写一个文件拷贝函数。

Q:你说的“拷贝”是什么意思?
A:嗯。。。。就是把一个文件的内容拷贝到新的文件
Q:考不考虑日期/时间?
A:不用,那些不用被拷贝。
Q:目标文件可以和源文件同名么?
A:嗯。。。不行
Q:那我不用担心假名攻击(name spoofing)?比如说土耳其语的I。(注意哈,土耳其语的I有四种写法,和英语的I相似而不同)。
A:不用担心。
Q:文件属性呢?
A:新文件和老文件的属性一样
Q:那我应该修改老文件的属性么?如果这个拷贝操作时备份或者存档操作的一部分,那可能不应该保留’Archive’这个属性。
A:不用,保持原样就行了。
Q:那万一源文件的’Archive’属性被关掉了呢?如果新文件的这个属性也被我关掉,可能会搞坏用户的备份软件。
A:就让它们一样。我不在乎用户的备份软件。
Q:这样为用户设计软件好像不好吧?
A:。。。
Q:文件压缩怎么办?这是个文件属性,但拷贝目的地不一定支持压缩。
A:不用管文件压缩。
Q:哪怕源文件被压缩了,而拷贝目的地不支持压缩?
A:对头!
Q:那加密呢?如果源文件被加了密,而拷贝目的地不支持加密?
A:如果目的地不支持加密就不要加密。
Q:哎呀不好意思,我不是想岔开话题。不过。。。这样不是很大的安全隐患么?特别当这个文件拷贝函数支持任意多个参数的时候(直接或者间接)。
A:靠!他妈的把文件拷贝过去就行了!
Q:创建文件的用户呢?
A:不用管。
Q:那文件的所有人呢?
A:不用管。
Q:那文件权限呢?有没有啥么方法来处理继承的权限和赋予的权限?
A:不要管权限了。
Q:那这个函数会在什么系统上运行?
A:Windows XP
Q:Home, Pro, Media Center,或者多于一个版本?
A:Pro
Q:哪一个Service Pack?
A:SP2
Q:也就是说我们不用支持其它的Service Pack?
A:对阿
Q:咋个提供源文件名?
A:用参数传进去。
Q:那则个参数十一个以null结尾的字符串,一个计数的字符串(学Pascal的都知道哈),还是一个对象?
A:以Null计数的字符串。
Q:Null指针可能被传进去么?
A:不可能。
Q:那文件名的编码呢?
A:Unicode。
Q:不好意思,这个这个。。。Unicode不能算编码。如果我们用Unicode数据,我们必须知道具体的编码,比如UTF-8, UCS-2, UTF-16,等等。
A:你够狠!UTF-8。
Q:好嘛。我只是想说把UTF-8转换成UTF-16,好让Windows API调用工作,还是有点痛苦的。
A:射!UTF-8!
Q:Big-endian还是small-endian?
A:啊―――随便你丫的!
Q:那我们接受相对路径还是绝对路径?
A:就绝对路径。
Q:那些路径有没有什么需要过滤的特征?
A:没有。用户自己搞定。
Q:怎么生成目标文件名?或者用户提供?
A:。。。
Q:要不要(或者允不允许)我提供异步拷贝操作?
A:不。
Q:我该怎么报错?Exception?Error code?
A:随便。
Q:我是该在被调用的函数内部处理错误呢,还是把错误传给调用者?
A:嗯。。。传出去。
Q:如果目标文件已经存在怎么办?
A:不会的。
Q:也就是调用人确保这点?
A:对。
Q:也就是说如果目标文件的确存在,我可以立刻终结程序运行?但这个明显违背了前置条件,而且鬼才知道会出什么问题。
A:射。随你丫的。
Q:那轮换数据流呢?
A:随便你!!
Q:老大,我真地不好意思,如果你觉得被我挑衅了。不要生气哈。我只是想在动手前得到一个清晰完整的规格。很明显如果我要写一个文件拷贝函数,而不是用各种库里现成的文件函数,这个新的函数需要满足某套特殊需求,所以我需要知道那些问题的确切答案。如果你无所谓,我可以在一分钟内整出一个函数来,但肯定有很多问题都没有解决。
A:啊!!!!!!!!!!!!!!!!!!!!!!!!

抱歉!评论已关闭.