一道面試題 檔案拷貝

2021-04-07 06:17:23 字數 2334 閱讀 8406

情景:

在面試過程中,求職者被要求寫乙個檔案拷貝函式。

問:你是怎樣理解「拷貝」的?

答:嗯... 就是把檔案的內容複製到新檔案。

問:那麼時間戳呢?

答:不拷貝。

問:目標檔名是否必須相同?

答:不必。

問:那它的名字

能否一樣?

答:這個...不能。

問:要不要擔心名字欺騙?比如土耳其 i (

注1)?

答:不要擔心。

問:檔案位置是否必須相同?請注意

如果位置相同的話,則名稱不能一樣,除非拷貝到自身(接下來的問題是...)

答:當然。

問:怎麼處理檔案屬性?

答:檔案屬性相同。

問:要不要修改原檔案的屬性?如果該檔案是備份或存檔的一部分,仍然保留其「存檔」屬性可能會出錯。

答:不管它,保持原樣。

問:如果原檔案沒有「存檔」屬性呢?假如新檔案的「存檔」屬性為空,可能會造成使用者的備份程式出錯。

答:保持原樣,不用理會使用者的備份軟體。

問:這個嘛,軟體設計要為使用者著想,我不認為這是最好的方案,但你是這樣回答的。

答:...

問:那麼壓縮問題?這是檔案的屬性之一,但目標位置可能不支援壓縮。

答:複製的文件不用壓縮。

問:即使原檔案是壓縮的,而且目標位置也支援壓縮?

答:是的。

問:關於加密檔案,假如原檔案是加密的,但目標位置不支援加密怎麼辦?

答:如果目標位置

不支援加密,就不對複製檔案加密。

問:嗯...,對不起,不是我節外生枝,但是這可能會引起嚴重的安全漏洞。尤其是這個檔案複製函式最後可能要支援任意個引數(直接或間接)。

答:聽著,我只管拷貝那個該死的檔案。

問:那麼檔案的建立者呢?

答:不管他。

問:檔案的所有者?

答:我不管。

問:檔案的許可權?要不要分別處理繼承的許可權和指定的許可權?

答:不考慮許可權。

問:該檔案複製函式執行時所需的作業系統?

答:windows xp。

問:家庭版、專業版、**中心版,其中之一還是多種?

答:專業版。

問:補丁包呢?

答:service pack 2。

問:這就意味著我們不支援其它的補丁包?

答:正是。

問:如何提供原檔名?

答:通過乙個引數。

問:使用空字元結束的字串、計算字元個數的字串還是物件?

答:空字元結束的字串。

問:是否可能傳入空指標?

答:不。

問:是否可能傳入空字串?

答:不會。

問:是否可能傳入惡意的字串(例如,沒有以 null 結束)?

答:不。

問:檔名用那種編碼?

答:unicode。

問:對不起,unicode 不是編碼格式,實際上在使用unicode時要指定編碼的名稱,例如 utf-8, ucs-2, utf-16,等等。

答:很對,就用 utf-16。

問:big-endian 還是 little-endian (

注2)?

答:隨便!

問:接受相對路徑,還是只接受完整路徑?

答:只接受完整路徑。

問:是否只支援特定的字元以便能對傳入的引數進行過濾?

答:沒有,呼叫者將負責過濾所有的路徑和檔名。

問:目標檔案的檔名是如何生成或提供的?

答:...

問:是否支援(或允許)非同步檔案拷貝操作?

答:不。

問:怎樣報告錯誤?異常?錯誤**?

答:隨便。

問:應當在函式內部捕獲異常,還是傳遞給呼叫者?

答:這個...傳遞出。

問:假如目標檔案已經存在怎麼辦?

答:不會。

問:由呼叫者保證?

答:毫無疑問。

問:假如它

真的存在,那就終止程式?顯然違背了約定的條件,但誰知道發生了什麼事情。

答:當然,隨便您。

問:怎麼處理其他資料流?

答:悉聽尊便!

問:看來您覺得我有些過分,不過請別生氣。我只不過是想要澄清我們的要求而已。顯然如果我要寫乙個檔案拷貝方法的話,不會使用許多現有的庫和框架中的例程,而是要滿足許多特殊的要求。我想要的是這些問題的正確答案。如果您願意,我可以花一分鐘時間講解。要指出的是,在需求和目的方面,仍然有

相當多的問題沒有解決。

答:啊..........................

任務完成。

*************************==

原文出自:(

ooze)

注:注釋為譯者所加。

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...

一道面試題

前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...

一道面試題

如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...