unix系統之與檔案系統相關的系統呼叫

2021-07-27 05:38:24 字數 2197 閱讀 7645

自unix誕生之初,檔案系統便成為了unix系統的一部分。儘管那時的檔案系統只能支援512k位元組的磁碟且每個檔案限定長度為64k位元組。但是檔案系統的基礎結構已經基本確定。構建在檔案系統之上的相關的系統呼叫也已基本成型。後來發展的與檔案系統相關的系統呼叫也是在其基礎之上不斷完善而來的。

unix中與檔案系統相關的系統呼叫大約有50多條。按照它們功能的不同可以將它們分為三類:建立與刪除獲取與修改以及其他相關

建立與刪除指的是建立與刪除檔案。unix支援7種檔案型別—–普通檔案,目錄檔案,字元裝置檔案,塊裝置檔案,管道檔案,套接字檔案和符號鏈結檔案。每種檔案型別都可以建立與刪除。而完成建立與刪除操作則需要呼叫相應的系統呼叫。如圖1描述了建立與刪除各種檔案時用到的系統呼叫。

檔案型別

建立刪除

普通檔案

creat/mknod

unlink

目錄檔案

mkdir

rmdir

字元裝置檔案

mknod

unlink

塊裝置檔案

mknod

unlink

管道檔案

mknod

unlink

套接字檔案

mknod

unlink

符號鏈結檔案

symlink

unlink

上圖涉及的和建立與刪除相關的系統呼叫有creat,mknod,unlink,mkdir,rmdir,symlink。還有2個系統呼叫和建立與刪除檔案有關,它們分別是umask和link。umask用於設定檔案模式建立遮蔽字。檔案模式建立遮蔽字在建立檔案時起作用。link用於建立現有檔案的鏈結檔案(硬鏈結)。綜上所述,和建立與刪除相關的系統呼叫有8個。它們分別是creat,mknod,unlink,mkdir,rmdir,symlink,umask,link。

獲取與修改指獲取與修改檔案。unix中每個檔案都可看成由三個部分組成:一檔名,二檔案屬性,三檔案內容。如圖2所示。獲取與修改檔案包含了獲取與修改檔名,獲取與修改檔案屬性,獲取與修改檔案內容三項。

獲取與修改檔名。檔名在建立檔案時確定,但可以通過rename系統呼叫修改。

獲取與修改檔案屬性。每個檔案都有相應的屬性。屬性可能包括檔案型別,檔案大小,檔案許可權,檔案修改時間等。其中有些屬性可以修改,有些則不可以。stat,fstat,lstat系統呼叫可以獲取檔案屬性。chmod,fchmod系統呼叫可以修改檔案的許可權。chown,fchown,lchown系統呼叫可以修改檔案的使用者以及組使用者。truncate,ftruncate系統呼叫可以修改檔案的長度。utime,utimes系統呼叫可以修改檔案的訪問時間及修改時間。access系統呼叫可以判斷檔案的許可權。

獲取與修改檔案內容。檔案最主要的部分便是檔案的內容。unix使用讀,寫的方式來獲取與修改檔案的內容。open,read,write,lseek,close系列系統呼叫用於讀寫檔案內容。readdir,getdents系列系統呼叫用於讀取目錄檔案內容。ioctl系統呼叫用於獲取與修改裝置檔案的部分內容。readlink系統呼叫用於讀取符號鏈結檔案內容。

綜上所述,和獲取與修改相關的系統呼叫有rename,stat,fstat,lstat,chmod,fchmod,chown,fchown,lchown,truncate,ftruncate,utime,utimes,access,open,read,write,lseek,close,readdir,getdents,ioctl,readlink。

其他相關指的是不包含在建立與刪除,獲取與修改中,但與檔案系統相關的系統呼叫。這些系統呼叫有:

1. 同步檔案系統或檔案 sync,fsync,fdatasync

2. 更改當前目錄 chdir,fchdir

3. 獲取當前目錄 getcwd

4. 更改根目錄 chroot

5. 複製檔案描述符 dup,dup2

6. 改變已開啟的檔案的性質 fcntl

7. 獲取檔案系統相關資訊 statfs,fstatfs,ustat

……

unix檔案系統 鏈結與檔案

說明 以下是在讀小駱駝書 perl 語言入門 第十二章 目錄操作 中 鏈結與檔案 一節 p189 193 中的讀書筆記。目錄是一種由系統管理的特殊檔案,它基本上是乙份列表。每份檔案都會儲存在乙個編好號的inode裡,我們可以把它想象成磁碟上的門牌號碼。ls l命令,硬鏈結的數量會顯示在許可權標記的右...

UNIX檔案系統概述

unix檔案系統是unix系統的心臟部分,提供了層次結構的目錄和檔案。檔案系統將磁碟空間劃分為每1024個位元組一組,稱為塊 block 也有用512位元組為一塊的,如 sco xenix 編號從0到整個磁碟的最大塊數。全部塊可劃分為四個部分,塊0稱為引導塊,檔案系統不用該塊 塊1稱為專用塊,專用塊...

檔案系統相關

1.備份mbr dd if dev sda of yourbackupdevicepath sda.mbr.back bs 512 count 1 2.swap分割槽 windows的pagefile.sys 3.可以用ls al命令來觀察檔案的許可權,每個檔案的許可權都用10位表示,並分為四段,其...