版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章文件系統(tǒng)內(nèi)筒提要Linux文件系統(tǒng)概述文件的基本操作文件屬性操作目錄操作文件系統(tǒng)操作標(biāo)準(zhǔn)I/O函數(shù)庫6.1Linux文件系統(tǒng)概述文件系統(tǒng)概述
文件系統(tǒng)將文件作為用戶存儲(chǔ)數(shù)據(jù)的基本單位,文件可視作由若干字節(jié)構(gòu)成的字節(jié)流,并將字節(jié)流以文件名的形式加以標(biāo)識(shí),為了便于管理,引入目錄,將文件以層次結(jié)構(gòu)分類組織;,目錄可看做一種特殊類型的文件,其內(nèi)容由若干目錄項(xiàng)組成,目錄項(xiàng)建立文件名與i節(jié)點(diǎn)的映射關(guān)系。
Linux系統(tǒng)支持多種類型的文件系統(tǒng),為了封裝特定文件系統(tǒng)的特性,Linux內(nèi)核將各種文件系統(tǒng)統(tǒng)一在虛擬文件系統(tǒng)的框架下。文件系統(tǒng)架構(gòu)頁高速緩存(pagecache)硬件設(shè)備系統(tǒng)調(diào)用接口層虛擬文件系統(tǒng)(VFS)字符設(shè)備驅(qū)動(dòng)通用塊設(shè)備層網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)ext2fatnfsminix網(wǎng)絡(luò)協(xié)議I/O調(diào)度層底層塊設(shè)備驅(qū)動(dòng)1底層塊設(shè)備驅(qū)動(dòng)n底層塊設(shè)備驅(qū)動(dòng)2openreadwriteclosestatlseek虛擬文件系統(tǒng)VFS
虛擬文件系統(tǒng)(VFS)是一種基于內(nèi)存的抽象文件系統(tǒng),它提供了一種將各種真實(shí)文件系統(tǒng)粘結(jié)在一起的框架,同樣由超級(jí)塊、i節(jié)點(diǎn)和目錄項(xiàng)等對(duì)象組成,并分別為它們定義了一組抽象的操作接口。從而隔離了具體文件系統(tǒng)的特性,為上層應(yīng)用提供了一致的編程接口。
Linux內(nèi)核啟動(dòng)時(shí)將所需的文件系統(tǒng)通過VFS建立一顆目錄樹,根文件系統(tǒng)作為其主干,其他文件系統(tǒng)掛載至相應(yīng)的分支。文件系統(tǒng)的結(jié)構(gòu)
超級(jí)塊是文件系統(tǒng)的組織者和管理者,負(fù)責(zé)對(duì)i節(jié)點(diǎn)表和數(shù)據(jù)區(qū)等對(duì)象的管理,i節(jié)點(diǎn)存儲(chǔ)文件除名字外的所有信息,其中包括文件內(nèi)容在數(shù)據(jù)區(qū)的分布,邏輯塊是數(shù)據(jù)區(qū)的基本存儲(chǔ)單位,目錄是一種特殊文件,其內(nèi)容存儲(chǔ)文件的入口信息。文件系統(tǒng)引導(dǎo)塊超級(jí)快數(shù)據(jù)塊i-節(jié)點(diǎn)表數(shù)據(jù)區(qū)...01678910111213n-2n-1n14文件/目錄大小創(chuàng)建日期修訂日期訪問日期歸屬數(shù)據(jù)分布i-節(jié)點(diǎn)247.520..610test611demo.c613demo.o620demostruct
dirent{
ino_t
d_ino;chard_name[NAME_MAX+1];}i-節(jié)點(diǎn)號(hào)文件名目錄項(xiàng)的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)塊11的內(nèi)容分類API功能描述文件基本I/O操作open/close/unlink打開/創(chuàng)建/關(guān)閉/刪除文read/write讀/寫文件readv/writev分散輸入/集中輸出pread/pwrite基于特定偏移量的讀/寫lseek定位讀寫操作的位置truncate文件截?cái)郿up/dup2復(fù)制文件描述符文件屬性操作Stat/fstat/lstat獲取文件的屬性信息chmod設(shè)置文件的權(quán)限chown設(shè)置文件的屬主/屬組fcntl設(shè)置文件的操作目錄操作mkdir/rmdir創(chuàng)建/刪除目錄chroot/chdir改變進(jìn)程的根目錄和工作目錄opendir打開目錄readdir讀目錄closedir關(guān)閉目錄nftw遍歷目錄樹文件系統(tǒng)操作mount/umount掛載/卸載文件系統(tǒng)statvfs獲取文件系統(tǒng)的相關(guān)信息fsync/syncfs同步文件/文件系統(tǒng)標(biāo)準(zhǔn)I/O庫fopen/fclose打開/關(guān)閉文件fread/fwrite讀/寫文件應(yīng)用編程接口6.2文件的基本操作內(nèi)容提要基本I/O操作分散輸入和集中輸出基于特定偏移量的I/O操作設(shè)置偏移量文件截?cái)?/p>
I/O重定向基本I/O操作
讀寫文件時(shí),需將數(shù)據(jù)在文件中的位置(偏移量)換算成數(shù)據(jù)在設(shè)備中的邏輯塊號(hào),該過程需借助i節(jié)點(diǎn),因此,在讀寫文件前,應(yīng)根據(jù)文件的路徑名找到對(duì)應(yīng)的i節(jié)點(diǎn),這正是打開文件操作的任務(wù)。為了提高磁盤I/O性能,系統(tǒng)為每個(gè)打開的文件構(gòu)建內(nèi)核緩沖區(qū),讀操作首先搜索該緩沖區(qū),在未命中時(shí)才真正向設(shè)備發(fā)起讀請(qǐng)求,寫操作時(shí),只需將數(shù)據(jù)寫入緩沖區(qū),僅在必要時(shí),才真正將數(shù)據(jù)寫入設(shè)備。內(nèi)核為每個(gè)打開的文件分配一個(gè)偏移量指針,指向當(dāng)前讀寫位置,文建剛打開時(shí),其值為0,隨著讀寫操作的進(jìn)行,指針向后作相應(yīng)移動(dòng),必要時(shí),可調(diào)整至所需位置。打開/關(guān)閉/刪除操作頭文件 #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h>函數(shù)原型 intopen(constchar*pathname,intflags); intopen(constchar*pathname,intflags,mode_tmode); intclose(intfd); intunlink(constchar*pathname);功能 打開/創(chuàng)建/關(guān)閉/刪除文件。參數(shù) pathname:文件的路徑名。 flags:文件的操作模式。 mode:新建文件的權(quán)限分配。 fd:文件描述符。返回值 成功返回文件描述符,否則返回-1。打開文件inode
file…filesfs...
task_struct…filesfs...
task_struct進(jìn)程1進(jìn)程2file打開的文件描述i節(jié)點(diǎn)012012標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)錯(cuò)誤…f_dentryf_posf_op...…f_dentryf_posf_op...…i_sbi_op…d_named_inoded_named_inoded_named_inoded_named_inoded_named_inoded_named_inodedentry文件描述符打開的文件描述打開文件(續(xù))
每個(gè)進(jìn)程均有一個(gè)文件描述符表,用于記錄打開的文件,內(nèi)核為每個(gè)打開的文件創(chuàng)建一個(gè)文件描述,用于記錄打開文件的狀態(tài),其地址記錄在文件描述符表的某個(gè)單元中,單元的下標(biāo)便是打開文件操作的返回值。一個(gè)文件描述可能會(huì)被多個(gè)進(jìn)程或一個(gè)進(jìn)程的多個(gè)文件描述符引用,例如,創(chuàng)建的子進(jìn)程,子進(jìn)程會(huì)繼承父進(jìn)程的文件描述符表,復(fù)制的文件描述符會(huì)共享文件描述。若進(jìn)程源自登錄shell,其文件描述符表的前三個(gè)單元通常處于打開狀態(tài),它們依次對(duì)應(yīng)標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出。關(guān)閉文件
當(dāng)關(guān)閉文件時(shí),對(duì)應(yīng)文件描述的引用次數(shù)減1,當(dāng)引用次數(shù)為0時(shí),對(duì)應(yīng)的文件描述被內(nèi)核回收,若此時(shí)內(nèi)核緩沖區(qū)中尚有未回寫的數(shù)據(jù),內(nèi)核回將數(shù)據(jù)同步至設(shè)備。只有當(dāng)打開文件上的所有引用全部關(guān)閉時(shí),文件才能被刪除。
讀/寫文件頭文件
#include<unistd.h>函數(shù)原型
ssize_t
read(int
fd,void*buf,size_tcount);
ssize_t
write(int
fd,constvoid*buf,size_tcount);功能 讀/寫文件。參數(shù)
fd:文件描述符。
buf:緩沖區(qū)地址。
count:讀/寫字節(jié)數(shù)。返回值 成功,返回讀/寫的字節(jié)數(shù),錯(cuò)誤,返回-1。讀/寫文件(續(xù))
讀寫文件時(shí),根據(jù)文件描述符可定位關(guān)聯(lián)的文件描述,由于文件描述存儲(chǔ)了對(duì)應(yīng)i節(jié)點(diǎn)的地址,可進(jìn)一步找到對(duì)應(yīng)的i節(jié)點(diǎn),利用i節(jié)點(diǎn)中數(shù)據(jù)的分布信息,結(jié)合當(dāng)前讀寫的偏移量,可計(jì)算出需要讀寫數(shù)據(jù)在設(shè)備上的位置,最終發(fā)起讀寫請(qǐng)求,真正完成數(shù)據(jù)的讀寫。實(shí)例分析
int
fds=open(argv[1],O_RDONLY);
int
fdt=open(argv[2],O_WRONLY|O_CREAT,0666);
ssize_t
len; while((len=read(fds,buf,BUFSIZ))>0)
write(fdt,buf,len);
close(fds);
close(fdt);分散輸入和集中輸出頭文件
#include<sys/uio.h>函數(shù)原型
ssize_t
readv(int
fd,conststruct
iovec*iov,int
iovcnt);
ssize_t
writev(int
fd,conststruct
iovec*iov,int
iovcnt);功能 數(shù)據(jù)的分散讀出/集中寫入。參數(shù)
fd:文件描述符。
iovec:緩存向量。
iovcnt:緩存的數(shù)量。返回值 成功,返回讀寫的字節(jié)數(shù),失敗,返回-1。當(dāng)保存讀寫數(shù)據(jù)的緩存地址不連續(xù)時(shí),可使用分散輸入和集中輸出面向特定偏移量的讀寫操作頭文件
#include<unistd.h>函數(shù)原型
ssize_t
pread(int
fd,void*buf,size_tcount,off_toffset);
ssize_t
pwrite(int
fd,constvoid*buf,size_tcount,off_toffset);功能 基于特定偏移量的讀/寫文件。參數(shù)
fd:文件描述符。
buf:緩沖區(qū)地址。
count:字節(jié)數(shù)。
offset:偏移量。返回值 成功,返回讀寫的字節(jié)數(shù),失敗,返回-1。 可避免對(duì)個(gè)進(jìn)程同時(shí)競爭文件偏移量,適用于多個(gè)進(jìn)程/線程同時(shí)存取文件的不同區(qū)域。設(shè)置當(dāng)前偏移量頭文件
#include<sys/types.h> #include<unistd.h>函數(shù)原型
off_t
lseek(int
fd,off_toffset,intwhence);功能 設(shè)置文件的當(dāng)前偏移量。參數(shù)
fd:文件描述符。
offset:偏移量。
whence:參照坐標(biāo)。返回值 成功,返回距文件頭的字節(jié)數(shù),失敗,返回-1。
文件截?cái)?/p>
文件寫操作時(shí),設(shè)備上存儲(chǔ)數(shù)據(jù)的邏輯塊,會(huì)依次映射至文件的線性空間,邏輯塊時(shí)文件存儲(chǔ)數(shù)據(jù)的最小單位,通常文件的最后一個(gè)邏輯塊會(huì)有剩余,從而造成一定程度的浪費(fèi)。若寫入文件的字節(jié)不連續(xù),則未寫入部分會(huì)形成空隙,若空隙中存在未映射的邏輯塊,則未映射部分形成空洞。文件截?cái)嗪椭刂闷屏烤锌赡墚a(chǎn)生空隙。文件截?cái)嗖僮黝^文件
#include<unistd.h> #include<sys/types.h>函數(shù)原型
int
truncate(constchar*path,off_tlength);
int
ftruncate(int
fd,off_tlength);功能 文件截?cái)唷?shù)
path:文件路徑。
fd:文件描述符。
length:文件長度。返回值 成功,返回0,失敗,返回-1。
文件空襲...文件空洞(2個(gè)邏輯塊)文件空隙(10.5k)扇區(qū)(512字節(jié))文件大小(13.5k)映射映射邏輯塊(4k)磁盤空間文件(字節(jié)流)/O重定向shell在加載可執(zhí)行文件時(shí),通過創(chuàng)建子進(jìn)程,在子進(jìn)程中加載可執(zhí)行程序?qū)崿F(xiàn)命令的運(yùn)行。
I/O重定向可通過在子進(jìn)程加載可執(zhí)行文件前,改變子進(jìn)程的運(yùn)行環(huán)境,修改標(biāo)準(zhǔn)輸入輸出所指的文件描述。這可通過復(fù)制文件描述副和close-open來實(shí)現(xiàn)。復(fù)制文件描述符頭文件
#include<unistd.h>函數(shù)原型
int
dup(int
oldfd);
intdup2(intoldfd,int
newfd);功能 復(fù)制文件描述符。參數(shù)
oldfd:原文件描述符。
newfd:新文件描述符。返回值 成功返回副本的文件描述符,失敗返回-1。實(shí)例分析int
main(int
argc,char*argv[]){ if(argc!=2){
printf("Usage:%sfilename\n",argv[0]); exit(1); }
int
fd=open(argv[1],O_WRONLY|O_CREAT,0644);
intfd1=dup2(fd,1);
printf("hellodup2:%d\n",fd1);
write(fd,"endofprogram\n",15); return0;}6.3文件屬性操作內(nèi)容提要文件屬性概述獲得文件屬性修改文件訪問權(quán)限改變文件的歸屬設(shè)置文件行為屬性文件屬性概述structstat{
dev_t
st_dev; //文件的設(shè)備編號(hào)
ino_t
st_ino; //i節(jié)點(diǎn)號(hào)
mode_t
st_mode; //文件的類型和存取權(quán)限
nlink_t
st_nlink; //硬鏈接數(shù)量,即引用次數(shù)
uid_t
st_uid; //屬主ID
gid_t
st_gid; //屬組ID
dev_t
st_rdev; //設(shè)備類型
off_t
st_off; //文件字節(jié)數(shù)
unsignedlongst_blksize; //塊大小
unsignedlongst_blocks; //塊數(shù),一塊大小為512字節(jié)
time_t
st_atime; //最后一次訪問時(shí)間
time_t
st_mtime; //最后一次修改時(shí)間
time_t
st_ctime; //最后一次改變時(shí)間(指屬性)};0121415文件類型其他用戶屬組屬主擴(kuò)展權(quán)限i節(jié)點(diǎn)存儲(chǔ)文件屬性,其結(jié)構(gòu)和內(nèi)容與文件系統(tǒng)有關(guān),為了隔離文件系統(tǒng)特性,Linux系統(tǒng)定義類型為stat的數(shù)據(jù)結(jié)構(gòu),并配合stat核心函數(shù),降獲取的文件屬性存儲(chǔ)于stat類型的實(shí)例。獲取文件屬性頭文件
#include<sys/stat.h> #include<unistd.h>函數(shù)原型
int
stat(constchar*pathname,structstat*buf);
int
fstat(int
fd,structstat*buf);
int
lstat(constchar*pathname,structstat*buf);功能 獲取文件的狀態(tài)屬性。參數(shù)
pathname:文件的路徑名。
filedes:文件描述符。
buf:指向文件屬性地址。返回值 成功,返回0,失敗,返回-1。實(shí)例分析intret=stat(argv[1],&sb);if(ret==-1)err(1,"%s",argv[1]);printf("Filetype:");switch(sb.st_mode&S_IFMT){ caseS_IFBLK:printf("blockdevice\n");break; caseS_IFCHR:printf("characterdevice\n");break; caseS_IFDIR:printf("directory\n");break; caseS_IFIFO:printf("FIFO/pipe\n");break; caseS_IFLNK:printf("symlink\n");break; caseS_IFREG:printf("regularfile\n");break; caseS_IFSOCK:printf("socket\n");break;
default:printf("unknown?\n");break;}修改文件訪問權(quán)限頭文件
#include<sys/type.h> #include<sys/stat.h>函數(shù)原型
int
chmod(constchar*pathname,mode_tmode);
int
fchmod(int
fd,mode_tmode);功能 設(shè)置文件的權(quán)限。參數(shù)
pathname:文件的路徑名。
fd:文件描述符。
mode:權(quán)限。返回值 成功,返回0,失敗,返回-1。實(shí)例分析#include<stdlib.h>int
main(int
argc,char*argv[]){ if(argc!=3){
fprintf(stderr,"Usage:%sfilebane
mode(octal)\n",argv[0]); exit(1); }
mode_tmode=strtol(argv[2],NULL,8); chmod(argv[1],mode); exit(0);}改變文件的歸屬頭文件
#include<unistd.h>函數(shù)原型
int
chown(constchar*pathname,uid_towner,gid_tgroup);
int
fchown(int
fd,uid_towner,gid_tgroup);
int
lchown(constchar*pathname,uid_towner,gid_tgroup);功能 設(shè)置文件的歸屬。參數(shù)
path:文件的路徑名。
owner:新屬主ID。
group:新屬組ID。返回值 成功,返回0,失敗,返回-1。設(shè)置文件行為屬性頭文件
#include<unistd.h> #include<fcntl.h>函數(shù)原型
int
fcntl(int
fd,int
cmd,longarg)功能 設(shè)置文件的行為屬性。參數(shù)
fd:文件描述符。
cmd:操作命令。
arg:傳遞的參數(shù)。返回值 成功,返回值依賴于具體的操作,失敗,返回-1。設(shè)置文件行為屬性(續(xù))fcntl函數(shù)中參數(shù)cmd的定義參數(shù)cmd
含義F_GETFL/F_SETFL獲取/設(shè)置文件狀態(tài)F_GETLK/F_SETLK/F_SETLKW獲得/設(shè)置文件鎖F_DUPFD復(fù)制尚未使用的最小文件描述符F_GETOWN_EX/,F_SETOWN_EX獲取/設(shè)置I/O信號(hào)接收的目標(biāo)F_GETSIG/F_SETSIG獲取/設(shè)置異步I/O信號(hào)6.4目錄操作目錄概述
目錄屬于一種特殊的文件,目的是為了有效組織和管理文件系統(tǒng),將文件系統(tǒng)構(gòu)建成一棵基于層次關(guān)系的目錄樹。目錄由若干目錄項(xiàng)組成,目錄項(xiàng)中記錄文件的名稱及其對(duì)應(yīng)的i節(jié)點(diǎn)編號(hào),建立起文件名和i節(jié)點(diǎn)的映射關(guān)系。由于目錄文件內(nèi)容的布局與文件系統(tǒng)有關(guān),因此,無法象普通文件一樣通過read函數(shù)讀取,為此,Linux內(nèi)核提供了getdents系統(tǒng)調(diào)用,為了簡化操作,glibc提供了相應(yīng)的庫函數(shù)。創(chuàng)建/刪除目錄mkdir/rmdir函數(shù)頭文件
#include<sys/types.h> #include<stat.h>函數(shù)原型
int
mkdir(constchar*pathname,mode_tmode);
int
rmdir(constchar*pathname);功能 創(chuàng)建/刪除目錄。參數(shù)
pathname:目錄的路徑名。
mode:新建目錄權(quán)限。返回值 成功,返回0,失敗,返回-1。根目錄和工作目錄1.chroot函數(shù)頭文件
#include<unistd.h>函數(shù)原型
int
chroot(constchar*path);功能 改變進(jìn)程的根目錄。參數(shù)
path:路徑名。返回值 成功,返回0,失敗,返回-1。根目錄和工作目錄
2.chdir函數(shù)頭文件
#include<unistd.h>函數(shù)原型
int
chdir(constchar*path);
int
fchdir(int
fd);功能 設(shè)置進(jìn)程的工作目錄。參數(shù)
path:路徑名。
fd:文件描述符。返回值 成功,返回0,失敗,返回-1。瀏覽目錄1.opendir函數(shù)頭文件
#include<sys/types.h> #include<dirent.h>函數(shù)原型
DIR*opendir(constchar*pathname); DIR*fdopendir(int
fd);功能 打開目錄。參數(shù)
pathname:目錄路徑名。
fd:文件描述符。返回值 成功返回目錄流,失敗,返回NULL。瀏覽目錄頭文件
#include<sys/types.h> #include<dirent.h>函數(shù)原型
struct
dirent*readdir(DIR*dirp);功能 讀目錄。參數(shù)
dirp:打開的目錄流。返回值 成功,返回下一個(gè)目錄項(xiàng),失敗,返回NULL。struct
dirent
{longd_ino; //i節(jié)點(diǎn)號(hào)
chard_name[256]; //文件名
off_t
d_off; //在目錄流中的偏移量
unsignedshortd_reclen; //文件名長度}瀏覽目錄3.closedir函數(shù)頭文件
#include<sys/types.h> #include<dirent.h>函數(shù)原型
int
closedir(DIR*dirp);功能 關(guān)閉打開的目錄。參數(shù)
dirp:打開的目錄流。返回值 成功,返回0,失敗,返回-1。實(shí)例分析int
main(int
argc,char*argv[]){DIR*dirp;
struct
dirent*direntp;if((dirp=opendir(argv[1]))==NULL){
fprintf(stderr,"errormessage:%s\n",strerror(errno));exit(1);}while((direntp=readdir(dirp))!=NULL)
printf("%s\n",direntp->d_name);closedir(dirp);exit(0);}6.5文件系統(tǒng)操作文件系統(tǒng)概述
為了使用文件系統(tǒng),Linux內(nèi)核向用戶層提供了相應(yīng)的接口,在使用文件系統(tǒng)前,首先需通過mount函數(shù)將文件系統(tǒng)掛載至某個(gè)特定目錄,當(dāng)文件系統(tǒng)不再使用時(shí),可通過umount函數(shù)將其從掛載點(diǎn)卸載,期間,可通過statvfs函數(shù),獲取文件系統(tǒng)的當(dāng)前狀態(tài);必要時(shí),可通過syncfs函數(shù)將整個(gè)文件系統(tǒng)同步至存儲(chǔ)設(shè)備。掛載/卸載文件系統(tǒng)頭文件
#include<sys/mount.h>函數(shù)原型
int
mount(constchar*source,constchar*target,char*type,unsignedlongflags,void*data);
int
umount(constchar*target);功能 掛載一個(gè)文件系統(tǒng)至目標(biāo)目錄。參數(shù)
source:源塊設(shè)備文件。
target:掛載點(diǎn)目錄。
type:文件系統(tǒng)類型。
flags:操作行為。
data:傳遞數(shù)據(jù)。返回值 陳宮,返回0,失敗,返回-1。獲取文件系統(tǒng)信息statvfs函數(shù)頭文件
#include<sys/statvfs.h>函數(shù)原型
int
statvfs(constchar*path,struct
statvfs*buf);
int
fstatvfs(int
fd,struct
statvfs*buf);功能 獲取文件系統(tǒng)的統(tǒng)計(jì)信息。參數(shù)
path:文件的路徑名。
fd:文件描述符。
buf:指向存放文件系統(tǒng)統(tǒng)計(jì)信息的地址。返回值 成功,返回0,失敗,返回-1。獲取文件系統(tǒng)信息struct
statvfs{unsignedlongf_bsize;//邏輯塊大小
unsignedlongf_frsize;//碎片大小
fsblkcnt_t
f_blocks;//碎片占用的邏輯塊數(shù)
fsblkcnt_t
f_bfree;//空閑塊數(shù)量
fsblkcnt_t
f_bavail;//用戶可用的邏輯塊數(shù)
fsfilcnt_t
f_files;//總i-節(jié)點(diǎn)數(shù)量
fsfilcnt_t
f_ffree;//空閑i-節(jié)點(diǎn)數(shù)
fsfilcnt_t
f_favail;//用戶可用的i-節(jié)點(diǎn)數(shù)
unsignedlongf_fsid;//文件系統(tǒng)IDunsignedlongf_flag;//mount標(biāo)識(shí)
unsignedlongf_namemax;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購管理方面的課程設(shè)計(jì)
- 程序循環(huán)課程設(shè)計(jì)教案
- 高溫報(bào)警課程設(shè)計(jì)
- 鋼包課程設(shè)計(jì)模板
- 課程設(shè)計(jì)音響系統(tǒng)設(shè)計(jì)
- 陳列培訓(xùn)課程設(shè)計(jì)案例
- 門戶網(wǎng)站建設(shè)課程設(shè)計(jì)
- 水污染課程設(shè)計(jì)32.5
- 秒表可復(fù)位課程設(shè)計(jì)
- 熱力學(xué)統(tǒng)計(jì)課程設(shè)計(jì)
- 2024版?zhèn)€人私有房屋購買合同
- 2025年山東光明電力服務(wù)公司招聘筆試參考題庫含答案解析
- 《神經(jīng)發(fā)展障礙 兒童社交溝通障礙康復(fù)規(guī)范》
- 2025年中建六局二級(jí)子企業(yè)總經(jīng)理崗位公開招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 海上試油測試技術(shù)0327
- 中國地圖標(biāo)準(zhǔn)版(可編輯顏色)
- 瑪氏銷售常用術(shù)語中英對(duì)照
- (完整)貓咪上門喂養(yǎng)服務(wù)協(xié)議書
- 上海牛津版三年級(jí)英語3B期末試卷及答案(共5頁)
- 行為疼痛量表BPS
- 小學(xué)生必背古詩詞80首(硬筆書法田字格)
評(píng)論
0/150
提交評(píng)論