首先,你的理解有點偏差,檔案的存取方式不是由開發語言決定的,而是由檔案系統決定的,linux是用C語言開發的,其檔案系統的存取方式有三種1. 順序存取 順序存取是按照檔案的邏輯地址順序存取。 ?? 固定長記錄的順序存取是十分簡單的。讀操作總是讀出上一次讀出的檔案的下一個記錄,同時,自動讓檔案記錄讀指標推進,以指向下一次要讀出的記錄位置。如果檔案是可讀可寫的。再設定一個檔案記錄指標,它總指向下一次要寫入記錄的存放位置,執行寫操作時,將一個記錄寫到檔案 末端。允許對這種檔案進行前跳或後退N(整數)個記錄的操作。順序存取主要用於磁帶檔案,但也適用於磁碟上的順序檔案。 ?? 可變長記錄的順序檔案,每個記錄的長度資訊存放於記錄前面一個單元中,它的存取操作分兩步進行。讀出時,根據讀指標值先讀出存放記錄長度的單元 。然後,得到當前記錄長後再把當前記錄一起寫到指標指向的記錄位置,同時,調整寫指標值 。由於順序檔案是順序存取的,可採用成組和分解操作來加速檔案的輸入輸出。 2. 直接存取(隨機存取法) 很多應用場合要求以任意次序直接讀寫某個記錄。例如,航空訂票系統,把特定航班的所有資訊用航班號作標識,存放在某物理塊中,使用者預訂某航班時,需要直接將該航班的資訊取出。直接存取方法便適合於這類應用,它通常用於磁碟檔案。為了實現直接存取,一個檔案可以看作由順序編號的物理塊組成的,這些塊常常劃成等長,作為定位和存取的一個最小單位,如一塊為1024位元組、4096位元組,視系統和應用而定。於是使用者可以請求讀塊22、然後,寫塊48,再讀塊9等等。直接存取檔案對讀或寫塊的次序沒有限制。使用者提供給作業系統的是相對塊號,它是相對於檔案開始位置的一個位移量,而絕對塊號則由系統換算得到。 3. 索引存取 第三種類型的存取是基於索引檔案的索引存取方法。由於檔案中的記錄不按它在檔案中的位置,而按它的記錄鍵來編址,所以,使用者提供給作業系統記錄鍵後就可查詢到所需記錄。 通常記錄按記錄鍵的某種順序存放,例如,按代表健的字母先後次序來排序。對於這種檔案,除可採用按鍵存取外,也可以採用順序存取或直接存取的方法。資訊塊的地址都可以透過查詢記錄鍵而換算出。實際的系統中,大都採用多級索引,以加速記錄查詢過程。
首先,你的理解有點偏差,檔案的存取方式不是由開發語言決定的,而是由檔案系統決定的,linux是用C語言開發的,其檔案系統的存取方式有三種1. 順序存取 順序存取是按照檔案的邏輯地址順序存取。 ?? 固定長記錄的順序存取是十分簡單的。讀操作總是讀出上一次讀出的檔案的下一個記錄,同時,自動讓檔案記錄讀指標推進,以指向下一次要讀出的記錄位置。如果檔案是可讀可寫的。再設定一個檔案記錄指標,它總指向下一次要寫入記錄的存放位置,執行寫操作時,將一個記錄寫到檔案 末端。允許對這種檔案進行前跳或後退N(整數)個記錄的操作。順序存取主要用於磁帶檔案,但也適用於磁碟上的順序檔案。 ?? 可變長記錄的順序檔案,每個記錄的長度資訊存放於記錄前面一個單元中,它的存取操作分兩步進行。讀出時,根據讀指標值先讀出存放記錄長度的單元 。然後,得到當前記錄長後再把當前記錄一起寫到指標指向的記錄位置,同時,調整寫指標值 。由於順序檔案是順序存取的,可採用成組和分解操作來加速檔案的輸入輸出。 2. 直接存取(隨機存取法) 很多應用場合要求以任意次序直接讀寫某個記錄。例如,航空訂票系統,把特定航班的所有資訊用航班號作標識,存放在某物理塊中,使用者預訂某航班時,需要直接將該航班的資訊取出。直接存取方法便適合於這類應用,它通常用於磁碟檔案。為了實現直接存取,一個檔案可以看作由順序編號的物理塊組成的,這些塊常常劃成等長,作為定位和存取的一個最小單位,如一塊為1024位元組、4096位元組,視系統和應用而定。於是使用者可以請求讀塊22、然後,寫塊48,再讀塊9等等。直接存取檔案對讀或寫塊的次序沒有限制。使用者提供給作業系統的是相對塊號,它是相對於檔案開始位置的一個位移量,而絕對塊號則由系統換算得到。 3. 索引存取 第三種類型的存取是基於索引檔案的索引存取方法。由於檔案中的記錄不按它在檔案中的位置,而按它的記錄鍵來編址,所以,使用者提供給作業系統記錄鍵後就可查詢到所需記錄。 通常記錄按記錄鍵的某種順序存放,例如,按代表健的字母先後次序來排序。對於這種檔案,除可採用按鍵存取外,也可以採用順序存取或直接存取的方法。資訊塊的地址都可以透過查詢記錄鍵而換算出。實際的系統中,大都採用多級索引,以加速記錄查詢過程。