2016-04-17 53 views
0

當我們在任何編程語言中使用文件處理API時,我假設它會將二進制文件轉換爲操作系統將爲您服務的文件I/O請求。文件系統是否影響應用程序的可移植性?

從邏輯上講,您的最終二進制可執行文件應該與主機操作系統正在使用的文件系統無關。

是這種情況還是文件系統實際影響了應用程序的可移植性?

回答

1

正如經常出現,答案是「yes和no」 - 讓我解釋一下:

不同的文件系統有不同的屬性,例如最大文件大小,文件名的大小寫敏感性,共享文件名的文件系統對象的數量,最可能更多。

現在,只要您只使用這些功能的常用子集(即2G以下的文件大小),沒有僅在大寫字母上不同的文件名(並且始終使用相同的大寫),文件名中的小部分字符,等等,你很可能會遇到可移植性問題。

但是,當您使用任何高級功能時,您可能會很容易遇到麻煩。當遇到將4G + 1字節寫入FAT磁盤的請求時,Windows傾向於做出奇怪的事情,在ext3 my.pdfmy.PDF是不同的文件,可以很容易地在同一個目錄中。

+0

也沒有路徑分隔符允許。 –

+1

@ EugeneMayevski'EldoSCorp我不同意:Path分隔符不是文件系統的屬性,而是操作系統的屬性:同一個FAT文件系統將在Windows上使用'\',在Unix上使用'/'系統。 –

+0

感謝您的糾正。是和不是。嚴格地說,你是正確的,但從OP的角度來看,當他編寫一個與平臺無關的代碼時,他與操作系統交互,而不是直接與文件系統交互。 –

相關問題