作業系統中檔案控制代碼和檔案FILE指標

2021-08-29 16:00:23 字數 978 閱讀 3266

當你讀或寫乙個檔案時,必須先通知系統,告訴他你的舉動,這便是乙個開啟檔案的過程。在這裡說寫乙個檔案(w方式),如果檔案不存在,便建立乙個檔案,失敗那就不用說拉,如果成功拉呢?系統將怎樣管理你的檔案(你的檔案有可能不只有乙個)。

這時,檔案將返回乙個整數值,該值唯一標識這個檔案,每個被建立的檔案都會有乙個唯一標識值,稱為檔案識別符號。(注:r方式不必考慮,他必須通過建立過程)

在c語言中,大家都知道。一旦你成功開啟乙個檔案,他將返回乙個檔案指標。我們是這樣做的:

file *fp;

fp=fopen(「檔案」,檔案狀態(如w,r,r+));

當上面的操作成功後fp就會賦予你開啟檔案的最基本資訊!大家先看file結構

在stdio.h中宣告

typedef struct    file;

為了管理你開啟的檔案,作業系統為所有的檔案建立乙個開啟檔案資訊的結構體陣列------檔案控制塊(fcb),而檔案描述符就承擔了訪問與之對應的檔案檔案控制塊的使命,它在c中就充當檔案控制代碼。每乙個檔案都需要唯一的乙個標識,這樣才能管理若干個檔案。

注:fcb儲存了你開啟的所有檔案的資訊,而只有通過檔案控制代碼才能訪問與之對應的fcb,從而訪問你的檔案。(檔案控制代碼,就是fcb結構陣列的下標)。

所以我們要做的第一件事就是宣告乙個file結構的指標,然後呼叫庫函式fopen()建立乙個fiel結構的檔案控制代碼,唯一標識這個檔案。

file *fp0,*fp1,*fp2;

fp0=fopen("test0.txt","w");

fp1=fopen("test1.txt","w");

fp2=fopen("test2.txt","w");

printf("%d",fp0->fd);//輸出檔案控制代碼值。

printf("%d",fp1->fd);

printf("%d",fp2->fd);

你可以輸出file中的值,可以看到很多內幕。

作業系統 檔案共享和檔案保護

各個使用者的目錄項指向同乙個索引結點。索引節點中需要有鏈結計數count。某使用者想刪除檔案時,只是刪除該使用者的目錄項,且count 只有count 0時才能真正刪除檔案資料和索引結點,否則會導致指標懸空。在乙個link型的檔案中記錄共享資料的存放路徑 windows快捷方式 作業系統根據路徑一層...

檔案控制代碼和檔案控制代碼洩漏解決

在檔案i o中,要從乙個檔案讀取資料,應用程式首先要呼叫作業系統函式並傳送檔名,並選乙個到該檔案的路徑來開啟檔案。該函式取回乙個順序號,即檔案控制代碼 file handle 該檔案控制代碼對於開啟的檔案是唯一的識別依據。要從檔案中讀取一塊資料,應用程式需要呼叫函式readfile,並將檔案控制代碼...

作業系統對於檔案和檔名的限制

1 windows作業系統對檔案和資料夾命名限制 1.1 以下字元不能出現在檔案和資料夾名稱中 引號之內 1.2 以下字元不能命名為檔案或資料夾的名稱 引號之內 con aux nul prn com0 com1 com2 com3 com4 com5 com6 com7 com8 com9 lpt...