第一篇:文件系統(tǒng) :Linux文件管理
實驗5 文件系統(tǒng) :Linux文件管理
1.實驗?zāi)康?/p>
(1)掌握Linux提供的文件系統(tǒng)調(diào)用的使用方法;(2)熟悉文件和目錄操作的系統(tǒng)調(diào)用用戶接口;
(3)了解操作系統(tǒng)文件系統(tǒng)的工作原理和工作方式。2.實驗內(nèi)容
(1)利用Linux有關(guān)系統(tǒng)調(diào)用函數(shù)編寫一個文件工具filetools,要求具有下列功能: *********** 0.退出
1.創(chuàng)建新文件 2.寫文件 3.讀文件 4.復(fù)制文件 5.修改文件權(quán)限 6.查看文件權(quán)限 7.創(chuàng)建子目錄 8.刪除子目錄
9.改變當(dāng)前目錄到指定目錄 10.鏈接操作 *********** 代碼:
#include
int choose;
int suliangjin=1;
menu();
scanf(“%d”,&choose);
while(choose!=0)
{
switch(choose)
{
case 1:openfile();break;
case 2:writefile();break;
case 3:readfile();break;
case 4:copyfile();break;
case 5:chmd();break;
case 6:ckqx();break;
case 7:cjml();break;
case 8:scml();break;
case 9:ggml();break;
case 10:ylj();break;
}
menu();
scanf(“%d”,&choose);
}
return 0;} void menu(void){
printf(“文件系統(tǒng)n”);
printf(“1.創(chuàng)建新文件n”);
printf(“2.寫文件n”);
printf(“3.讀文件n”);
printf(“4.復(fù)制文件n”);
printf(“5.修改文件權(quán)限n”);
printf(“6.查看文件權(quán)限n”);
printf(“7.創(chuàng)建子目錄n”);
printf(“8.刪除子目錄n”);
printf(“9.改變目前目錄到指定目錄n”);
printf(“10.鏈接操作n”);
printf(“0.退出n”);
printf(“請輸入您的選擇...n”);} void openfile(void){
int fd;
if((fd=open(“/tmp/hello.c”,O_CREAT|O_TRUNC|O_RDWR,0666))<0)
perror(“open”);
else
printf(“open file:hileo.c %dn”,fd);
if(close(fd)<0)
perror(“close”);
else
printf(“Close hello.cn”);} void writefile(void){
int fd,size,len;
char *buf=“Hello!I'm writing to this file!”;
len=strlen(buf);
if((fd=open(“/tmp/hello.c”,O_CREAT|O_TRUNC|O_RDWR,0666))<0)
perror(“open”);
else
printf(“open file:hileo.c
%dn”,fd);
if((size=write(fd,buf,len))<0)
perror(“write”);
else
printf(“Write:%sn”,buf);
if(close(fd)<0)
perror(“close”);
else
printf(“Close hello.c n”);} void readfile(void){
int fd,size;
char b[10];
if((fd=open(“/tmp/hello.c”,O_CREAT|O_TRUNC|O_RDWR,0666))<0)
perror(“open”);
else
printf(“open file:hileo.c %dn”,fd);
lseek(fd,0,SEEK_SET);
if((size=read(fd,b,10))<0)
perror(“read”);
else
printf(“read from file:%sn”,b);
if(close(fd)<0)
perror(“close”);
else
printf(“Close hello.cn”);} void copyfile(void){
if(fork()==0)
execlp(“/bin/cp”,“cp”,“/tmp/hello.c”,“/tmp/he.c”,NULL);
else
wait(0);
printf(“將hello.c復(fù)制he.c”);} void chmd(void){
int a;
printf(“1.文件主可讀可寫可執(zhí)行n”);
printf(“2.文件主可讀n”);
printf(“3.文件主可寫n”);
printf(“4.文件主可執(zhí)行n”);
printf(“請輸入您的選項n”);
scanf(“%d”,&a);
switch(a)
{
case 1:chmod(“/tmp/hello.c”,S_IRWXU);printf(“ok!n”);break;
case 2:chmod(“/tmp/hello.c”,S_IRUSR);printf(“ok!n”);break;
case 3:chmod(“/tmp/hello.c”,S_IWUSR);printf(“ok!n”);break;
case 4:chmod(“/tmp/hello.c”,S_IXUSR);printf(“ok!n”);break;
default:printf(“您選擇有誤n”);
} } void ckqx(void){
char *path=“/bin/ls”;
char *argv[4]={“l(fā)s”,“-l”,NULL};
if(fork()==0)
execv(path,argv);
else
wait(0);} void cjml(void){
if(mkdir(“/tmp/a”,S_IRWXU)<0)
perror(“Mkdir”);
else
printf(“創(chuàng)建成功n”);} void scml(void){
if(rmdir(“/tmp/a”)<0)
perror(“Rmdir”);
else
printf(“刪除成功n”);} void ggml(void){
if(chdir(“/tmp/bc”)<0)
perror(“chdir”);
else
printf(“更改目錄成功n”);} void ylj(void){
if(link(“hello.c”,“h.c”)<0)
perror(“Link”);
else
printf(“建立硬連接n”);} 打開文件:
寫文件: 讀文件:
復(fù)制文件:
修改權(quán)限:
查看權(quán)限:
創(chuàng)建目錄:
刪除目錄:
更改目錄:
硬連接:
問題解決方案:
1.在復(fù)制文件時用execlp函數(shù),雖然有復(fù)制成功但是他就跳出整個程序,這就是一個缺陷。后來我在execlp前面加if(fork)()==0)就可以咯
2.硬連接不成功,老是拋出錯誤信息,后來發(fā)現(xiàn)原來是因為我的代碼出錯,還有我之前已經(jīng)更改了目錄所以就會經(jīng)常報錯
3.到現(xiàn)在還不知道為什么我讀出來的是亂碼情解決
實驗心得體會:
通過這次實驗掌握Linux提供的文件系統(tǒng)調(diào)用的使用方法;熟悉文件和目錄操作的調(diào)用用戶接口,了解操作系統(tǒng)文件系統(tǒng)的工作原理和工作方式。
第二篇:嵌入式linu學(xué)習(xí)心得
嵌入式Linux學(xué)習(xí)心得
1、Linux命令
ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當(dāng)前的目錄
cd:改變當(dāng)前操作目錄cd /直接跳到根目錄 cd..回到上一級目錄 cat: 打印顯示當(dāng)前文件的內(nèi)容信息
mkdir:創(chuàng)建目錄
fdisk: 查看硬盤分區(qū)信息,-l以列表方式查看
->代表是鏈接文件,類似window下的快捷方式。
cp: 復(fù)制命令,例子cp 文件名 /home/dir/
mv: 移動或改名,如mv sonf.confsonf.txt(改名)移動:mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d
man:查看某個命令的幫助,man 命令
2、各系統(tǒng)目錄的功能
drw—r—w--:d代表是目錄,drw代表當(dāng)前用戶的權(quán)限,r代表組用戶的權(quán)限,w代表其它用戶的權(quán)限。x代表有執(zhí)行權(quán)限。
/boot/gruff.conf: 啟動引導(dǎo)程序
/dev:brw—rw--:b代表是塊設(shè)備。Linux設(shè)備有三種,塊設(shè)備(b開頭)、字符設(shè)備(c開頭)、網(wǎng)絡(luò)設(shè)備。had代表第一個硬盤,hdb代表第二個硬盤。Hdb2代表第二塊硬盤的第二個分區(qū)。3,67代表主設(shè)備為3,從設(shè)備為67./etc:存放的是系統(tǒng)的配置文件。Inittab文件存放不同啟動方式下必須啟動的進程。Inittab文件中有6個啟動level,wait中對應(yīng)著6個level的目錄,respawn代表當(dāng)一個進程被意外終止了,但會自動啟動的進程,如守護進程。rc.d目錄中存放了一個rc.sysinit文件,里面存放系統(tǒng)初始化配置信息。/etc還有一個vsftpd里面存放tcp、ftp的配置。
/home : 用戶目錄,存放用戶的文件,/lib:存放庫文件,后綴為so的文件代表動態(tài)鏈接庫。
/lost+found:系統(tǒng)意外終止,存放一些可以找回的文件。
/mnt:掛載外部設(shè)備,如掛載光驅(qū):mount –t /dev/cdrom/mnt/cdrom,如
果在雙系統(tǒng)中,要查看windows中D盤的文件,首先應(yīng)該將D盤的文件映射過來,mount –t /dev/hda2/mnt/windows/d
/opt:用戶安裝的應(yīng)用程序
/proc:是系統(tǒng)運行的映射,比較重要。里面的文件數(shù)字代表進程號。每個進程號目錄下包含進程的基本信息。還有其他信息,如cpuinfo等,內(nèi)核支持的文件系統(tǒng)filesystem等。系統(tǒng)支持的中斷interrupts,iomen代表內(nèi)存分配情況。ioport存放IO端口號。還有分區(qū)信息,modole信息,狀態(tài)信息,版本信息
對于Linux的設(shè)備驅(qū)動程序,有兩種加載模式,一種是直接加載進linux內(nèi)核,一種是以模塊的方式加載到內(nèi)核。
/sbin: 系統(tǒng)管理的一些工具。如poweroff關(guān)機工具。
/usr: 安裝系統(tǒng)時很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫文件,src包含Linux2.4的內(nèi)核源碼
/var:存放是臨時變量
3、
第三篇:模擬文件系統(tǒng)實驗報告
操作系統(tǒng)大型試驗
實驗
報
告姓名:XX 班級:軟件工程110x 學(xué)號:201126630xxx
一、名稱
操作系統(tǒng)大型試驗。
二、目的
用C++編寫出一個簡單的模擬文件系統(tǒng),實現(xiàn)目錄的添加、刪除、重命名,文件的添加、刪除、重命名、文件和目錄、文件的拷貝。
三、要求
開發(fā)工具:word,vc win32api 1.設(shè)計和實現(xiàn)一個簡單的文件系統(tǒng),要求包括目錄、普通文件和文件的存儲 2.文件系統(tǒng)的目錄結(jié)構(gòu)采用類似Linux的樹狀結(jié)構(gòu); 3.要求模擬的操作包括:
a)目錄的添加、刪除、重命名; b)目錄的顯示(列表)
c)文件的添加、刪除、重命名 d)文件和目錄的拷貝
4.用戶進入時顯示可用命令列表;用戶輸入help時顯示所有命令的幫助文檔; 輸入某個命令+?時顯示該條命令的使用說明
5.用戶輸入exit時退出該系統(tǒng) 6.實驗實現(xiàn)基于windows平臺; 7.實驗開發(fā)語言可以選用C/c++等
四、設(shè)計
1.主要思路說明
本模擬系統(tǒng)通過一個大小固定的數(shù)組要代表物理盤塊,假設(shè)共有1024塊,新增目錄占一塊,新增文件占一塊,文件中可輸入內(nèi)容,內(nèi)容假設(shè)定義為5個字符占一塊,超出則應(yīng)新申請空間。模擬物理盤塊的數(shù)組中,數(shù)組內(nèi)容為-99代表改物理盤塊內(nèi)容為空,可使用,其他數(shù)字均代表該物理盤塊被占用,其中-3代表是占用文件的末結(jié)點,其他整數(shù)代表是文件內(nèi)容的下一個尋址下標(biāo),另有一個string類型的數(shù)組來存儲內(nèi)容,模擬文件寫入了對應(yīng)下標(biāo)的物理盤塊中。設(shè)置了一個全局指針指向根結(jié)點,一個全局指針指向當(dāng)前操作目錄。搜索空白物理盤塊時采用順序搜索物理盤塊數(shù)組。存儲形式主要采用類似二叉樹結(jié)構(gòu),如目錄為根,目錄下的第一個文件或目錄存在根的子節(jié)點,目錄下的其他文件或目錄存在第一個文件或目錄的兄弟節(jié)點,以此類推。
本程序僅seperate()函數(shù)使用現(xiàn)成代碼,此函數(shù)功能為將輸入命令串分離,僅僅起到美觀作用,其余所有代碼均為原創(chuàng)!
2.申優(yōu)功能:
1)能實現(xiàn)動態(tài)增長,即當(dāng)輸入文件的內(nèi)容大小大于分配的模擬物理盤塊時系統(tǒng)能夠自動尋找空物理盤塊并分配,將超出的內(nèi)容保存在新的物理盤塊中,若超出模擬磁盤大小,則超出部分不保存且返回提示。
2)能實現(xiàn)級聯(lián)刪除,即當(dāng)刪除目錄(文件夾)時,目錄下的所有內(nèi)容也應(yīng)當(dāng)刪除并正確釋放物理盤塊空間。
3)能實現(xiàn)目錄的復(fù)制,即復(fù)制目錄時(文件夾)時,該目錄下的所有文件和目錄也應(yīng)準確復(fù)制至目標(biāo)目錄中,并正確分配物理盤塊空間。3.主要函數(shù)和類的定義
1)主要函數(shù)定義
#define show_bnum 20
//顯示物理盤塊的塊數(shù)
#define block_size 1024
//物理盤塊塊數(shù) int block[block_size];
//假設(shè)有block_size塊物理盤塊 string content[block_size];//存放文件內(nèi)容 int Msize=5;
//此處為模擬磁盤大小為輸入5個字符 fnode *root=new fnode(“WP:”,0,0);
//設(shè)置根目錄 fnode *current_path=new fnode();
fnode *seek_flag=new fnode();
fnode *cp_flag=new fnode();
void initialize();
int seekTarget(string name);
int seek_log(string name);
void delete_node(string name);
int freeblock(fnode *);
int seekfreeblock();
void show_current_path();
void add_file(string name,int t);
void show_curpath_all();
void rename_file(string Oname,string Nname);void seperate();
void cd();
void add_File();
void add_Log();
void delete_file();
void show_memory();
void re_name();
void help();
void show_content();
void write_file();
void Clear_();
void Exit();
void cp();
void cp_log(fnode *target,fnode *source);void cp_file(fnode *target,fnode *source);void cp_node(fnode *target,fnode *source);int find_target_log();
int calculate_logsizeMain(fnode *);
int calculate_logsize(fnode *);2)文件節(jié)點類的定義: class fnode {
public:
//當(dāng)前路徑 //作為查找標(biāo)志 //作為復(fù)制的位置標(biāo)志 //初始化 //搜索文件或目錄 //搜索目錄 //刪除節(jié)點 //釋放物理盤塊 //搜索可用物理盤塊 //顯示當(dāng)前路徑 //增加目錄、文件 //顯示當(dāng)前目錄下的所有文件//重命名 //分離命令 //進入目錄 //增加文件功能入口 //增加目錄功能入口 //刪除文件或目錄功能入口 //顯示物理盤塊占用情況 //重命名功能入口 //查看幫助 //查看文件內(nèi)容 //寫文件 //清屏 //退出 //復(fù)制功能入口 //復(fù)制目錄 //復(fù)制文件 //復(fù)制節(jié)點 //找到復(fù)制的目標(biāo)目錄 //計算目錄大小
string filename;
//文件名
int type;
//文件類型,1為普通文件,0為目錄文件
fnode *parent;
//父節(jié)點
fnode *child;
//子節(jié)點
fnode *brother;
//兄弟節(jié)點
int block_num;
//表示占用的物理盤塊塊號
int isBro;
//表示是否是在同級目錄下,0表示不是,1表示是
int isCld;
//是否為目錄下第一個節(jié)點,1表示是,0表示不是
fnode()
//初始化
{
type=-1;
parent=NULL;
child=NULL;
brother=NULL;
block_num=-1;
isBro=0;
isCld=0;
}
fnode(string n,int t,int b)
//根節(jié)點初始化
{
type=t;
filename=n;
parent=NULL;
child=NULL;
brother=NULL;
block_num=b;
block[block_num]=-3;
isBro=0;
isCld=0;
}
fnode(fnode *p,string name,int t,int b)//文件節(jié)點初始化
{
parent=p;
filename=name;
type=t;
child=NULL;
brother=NULL;
block_num=b;
block[block_num]=-3;
isBro=0;
isCld=0;
}
void copy(fnode *cp)
//拷貝函數(shù)
{
filename=cp->filename;
type=cp->type;
parent=cp->parent;
child=cp->child;
brother=cp->brother;
block_num=cp->block_num;
}
};4.命令:
命令 echo md del cd cp dir ren typ wrt mem cls exit
解釋
echo命令可以在當(dāng)前目錄下創(chuàng)建一個文件,具體格式:echo+name md命令可以在當(dāng)前目錄下創(chuàng)建一個目錄文件,具體格式:md+name del命令可以在當(dāng)前目錄下刪除一個已存在的文件或目錄(支持級聯(lián)刪除),具體格式:del+name
cd命令可以進入下一級目錄或返回上級目錄、根目錄,具體格式:cd+name或cd+.或cd+..cp命令可以復(fù)制當(dāng)前目錄下一個指定的文件或目錄至指定的目錄,具體格式:cp+name+road
dir命令可以顯示當(dāng)前目錄下的所有文件和目錄,具體格式:del ren命令可以重命名一個存在于當(dāng)前目錄下的文件或目錄,具體格式:ren+name +new name typ命令可以查看當(dāng)前目錄下一個文件的內(nèi)容,具體格式:typ+name wrt命令可以在當(dāng)前目錄下寫內(nèi)容至一個已存在的文件,具體格式:wrt+name +content mem命令可以查看模擬物理盤塊的使用情況,具體格式:mem cls命令為清屏命令,具體格式:cls exit命令為退出命令,具體格式:exit
五、關(guān)鍵技術(shù)流程圖及說明
提示:若圖中文字無法看清,可用Micorsoft Visio打開壓縮包下“部分程序流程圖”文件夾的繪圖文件查看。
1.增加文件或目錄(此功能比較簡單,流程圖寫的較詳細就不做說明):
2.刪除目錄(實現(xiàn)級聯(lián)刪除):
說明:刪除目錄時刪除文件和刪除目錄本身放在同一個函數(shù)中,刪除目錄下的所有文件放在freeblock函數(shù)里,這樣比較好處理。下面給只給出遞歸函數(shù)的流程圖。
3.將內(nèi)容寫入文件(實現(xiàn)動態(tài)增長):
說明:圖中Msize為模擬規(guī)定的文件塊字符串大小,比如Msize=5,那么一個物理盤塊只能存5個字符,超出則要申請新的空間。主要采用雙重循環(huán)方法寫入,外層循環(huán)為需要的塊數(shù),內(nèi)層循環(huán)為Msize,用string累加字符串內(nèi)容,內(nèi)層循環(huán)退出后新申請一個空間并將對應(yīng)下標(biāo)賦給上一個物理盤塊數(shù)組,再將對應(yīng)內(nèi)容存入content(為string類型的數(shù)組,模擬存儲內(nèi)容)數(shù)組中,直至退出外層循環(huán)。
4.復(fù)制目錄:
說明:這里和刪除目錄一樣,寫了兩個復(fù)制函數(shù),這樣寫同樣因為遞歸調(diào)用是比較方便,第一個函數(shù)傳入?yún)?shù)為目標(biāo)目錄指針和被復(fù)制的目錄的指針,第一個函數(shù)里新建了一個階段復(fù)制被復(fù)制的目錄的內(nèi)容,然后將新建節(jié)點的子節(jié)點和被復(fù)制目錄的子結(jié)點傳入下一個遞歸調(diào)用函數(shù)(因為目錄的內(nèi)容存于目錄的子節(jié)點,與兄弟節(jié)點無關(guān)),第二個函數(shù)就是遞歸調(diào)用函數(shù)cp_node,下面就只給出cp_node的流程圖(復(fù)制之前同樣進行了路徑的判誤操作,內(nèi)存大小的判斷操作,是否重名的判斷操作,被復(fù)制目錄是否存在判斷操作,這些操作在遞歸函數(shù)之前完成,所以下面的遞歸函數(shù)不體現(xiàn)這些操作)。
六、運行結(jié)果
1.主界面展示:
圖:主界面展示
2.help命令展示:
圖:help命令展示
3.echo命令展示:
圖:echo命令展示
4.del命令展示:
圖:del命令展示-普通刪除
說明:創(chuàng)建了目錄log1,在log1中創(chuàng)建一系列文件和目錄,磁盤使用情況顯示已分配,實用del刪除命令后查看磁盤分配證明級聯(lián)刪除是可靠的。
圖:del命令展示-級聯(lián)刪除 5.md命令展示:
圖:md命令展示
6.cd命令展示:
說明:圖中展示了cd+name、cd+.、cd+..三種cd命令的使用和判別情況。
圖:cd命令展示
7.dir命令展示:
圖:dir命令展示
8.typ命令展示:
圖:typ命令展示
9.ren命令展示:
圖:ren命令展示
10.wrt命令展示:
圖:wrt命令展示 說明:此處為了實驗方便,將磁盤大小限定為5,每塊磁盤輸入的字符數(shù)限2,輸入的內(nèi)容***899需要9塊磁盤塊,而磁盤塊為5,根目錄占用一塊,只能輸入4塊大小的內(nèi)容,即11223344,所有文件file只寫入了11223344。
圖:wrt動態(tài)增長展示
11.mem命令展示:
圖:mem命令展示
12.cls命令展示:
圖:cls命令展示-1
圖:cls命令展示-2
13.cp命令展示:
說明:圖中根目錄(WP:)下創(chuàng)建了目錄a(md a)、目錄b(md b),在a目錄下創(chuàng)建了b目錄(md b),在b目錄中創(chuàng)建了文件a(echo a)、目錄c(md c),文件a中輸入1111122222(wrt a 111112222)內(nèi)容代表占了兩塊物理盤塊(程序中Msize模擬大小,設(shè)為5個字符了),再進入目錄c(cd c),c中先創(chuàng)建目錄f(md f)再創(chuàng)建文件g(與之前創(chuàng)建順序不同說明程序在不同情況下能正常運行),在g中輸入5個3,5個2,5個1(wrt g ***)代表占用3塊物理盤塊空間,再返回目錄a(cd.cd.),將目錄a下的目錄b復(fù)制給目錄WP下的目錄c(cp b WP:c),再將目錄a中的目錄b刪除(del b證明的確是復(fù)制而非簡單指針指向),進入WP下的目錄c查看剛復(fù)制的內(nèi)容(dir)。物理盤塊使用情況中第一個-3為根目錄占用,第二個-3是目錄a,第三個-3是目錄c,接下來的8個-99是目錄a中原目錄b占用的空間(此處證明刪除是可靠的),圖中顯示目錄c中確實成功復(fù)制了目錄b及目錄下的所有內(nèi)容(使用dir命令查看)。
圖:cp命令展示 14.exit命令展示:
圖:exit命令展示
15.綜合展示:
說明:echo a在根目錄(WP:)下創(chuàng)建了文件a,md b在根目錄(WP:)下創(chuàng)建了目錄b,dir顯示根目錄下的所有文件和目錄,wrt a aaaaabbbbbccccc在文件a中輸入了一串內(nèi)容,typ a顯示文件a中的內(nèi)容,cd b進入目錄b,md a在目錄b下創(chuàng)建了目錄a,cd a進入目錄a,cd.返回目錄b,cd.返回根目錄WP:,ren b newname將目錄b重命名為newname,mem顯示內(nèi)存情況,第一個-3代表根節(jié)點占用,第二個3代表文件a占用且下一塊盤塊下標(biāo)為3,第三個-3代表目錄b占用,之后的4代表被文件a占用且的下一塊盤塊的尋找下標(biāo)為4,下一個-3代表文件a的末盤塊,下一個-3代表目錄b內(nèi)的目錄a占用,del a在根目錄WP:下刪除文件a,mem查看物理盤塊實驗情況,圖中顯示原文件a占用的內(nèi)存空間已經(jīng)變?yōu)?99,代表成功刪除a并釋放磁盤空間(-99代表磁盤空間空閑可用),dir顯示根目錄WP:下所有文件和目錄,顯示只有newname,則證明重命名和刪除操作是成功的。
圖:綜合展示
七、心得體會和調(diào)試中遇到的問題及解決辦法
編寫調(diào)試過程中遇到許多問題,一類是指針指向空還繼續(xù)操作造成程序停止運行,經(jīng)檢查后修改正確,一類是邏輯上出現(xiàn)錯誤導(dǎo)致級聯(lián)刪除或者目錄復(fù)制出錯,經(jīng)改正后成功實現(xiàn)。
主要的難點在于兄弟結(jié)點和子結(jié)點的處理,所以再程序中引入了isBro這個標(biāo)志位來判斷是否是兄弟結(jié)點即與父節(jié)點是否在同級目錄,若不在同級目錄則父節(jié)點為真父節(jié)點(是指向本目錄而非本目錄中上個文件)。還有一個難點是在進行遞歸調(diào)用刪除或復(fù)制目錄時發(fā)現(xiàn)處理目錄和目錄下的內(nèi)容不太合適放在同一個遞歸程序中,所以單獨寫了兩個函數(shù)處理目錄的復(fù)制或刪除,然后對應(yīng)兩個遞歸程序處理目錄下的所有內(nèi)容。實驗總結(jié)及有待改進的問題。
因為時間比較緊張,在幾門考試中抽空寫了這個小程序,所以并沒有實現(xiàn)存盤,另因為對輸入命令字符串的處理上有點瑕疵,所有在寫文件內(nèi)容中只能寫入連續(xù)的字符串(中間不能插入空格),否則會被判定為命令輸入錯誤,并且只實現(xiàn)了文件的寫入,不能修改或插入,有待改進。沒有實現(xiàn)目錄樹的展示,只能顯示目錄下所有文件,有待改進。但相信時間再充裕一些這些小問題都能很好地解決。
八、源代碼
在壓縮包內(nèi)“源代碼”文件夾內(nèi)。
第四篇:AIX新建文件系統(tǒng)
AIX系統(tǒng)新建文件系統(tǒng)操作文檔
1.概述 1.1.目的
AIX新建文件系統(tǒng)操作步驟文檔,提供給對AIX新建文件系統(tǒng)的人員沒有操作過或沒有經(jīng)驗者參考。
1.2.來源
? AIX新建文件系統(tǒng)yuli,用于備份數(shù)據(jù)庫數(shù)據(jù)使用。
1.3.重要程度
重要
1.4.描述
在AIX操作系統(tǒng)中新建文件系統(tǒng)操作步驟。
2.處理步驟 2.1.一般新建步驟
1.連接到需要新建文件系統(tǒng)的服務(wù)器檢查環(huán)境是否符合新建文件系統(tǒng)的要求。2.檢查卷組及卷組的大小,其中命令:lspv(查看有什么卷組),lspv 卷組名稱(查看某個卷組的使用情況,如已用空間,空余空間等相關(guān)信息。)3.以東莞數(shù)據(jù)庫服務(wù)器新建一個備份文件系統(tǒng)為例,在array2vg卷組新建文件系統(tǒng),文件系統(tǒng)名稱為:yuli,文件系統(tǒng)的大小為500G,具體操作如下:
/ 6
1)用root用戶連接數(shù)據(jù)庫服務(wù)器,查看array2vg使用情況(lsvg array2vg),使用情況如下圖所示:從圖中可以看到array2vg可用空間滿足新建文件系統(tǒng)要求。2)Smitty hacmp(回車),如下圖所示:選擇:system Management(C-SPOC),回車,如下圖所示:選擇:HACMP Logical Volume Management,回車,如下圖所示:選擇:Shared File Systems,回車,如下圖所示:選擇:Enhanced Journaled File Systems,回車,如下圖所示:
/ 6 選擇:Add an Enhanced Journaled File System(新建增強型文件系統(tǒng)),回車,(注:若是在原有的邏輯卷上新建文件系統(tǒng),則選擇:Add an Enhanced Journaled File System on a Prcviously Defincd Logical Volume),如下圖所示:選擇相應(yīng)卷組新建文件系統(tǒng)(array2vg),如下圖所示:
/ 6 在圖中填寫文件系統(tǒng)的大小及文件系統(tǒng)加載路徑后,回車,如下圖所示:
3)看到Command:OK,則操作成功。按Esc+0 ,退出當(dāng)前界面。4)用命令df –k,查看新建文件系統(tǒng)是否成功,如下圖所示:
5)至此,新建文件系統(tǒng)結(jié)束。
2.2.遇到的問題
新建文件系統(tǒng)時發(fā)現(xiàn)初次新建不成功,系統(tǒng)的錯誤提示是: Command:fail MAXIMUM NUMBER OF LOGICAL PARTITIONS IS 512 在新建文件系統(tǒng)的邏輯卷中,MAXIMUM NUMBER OF LOGICAL PARTITIONS 這個值是512,不能滿足新建文件系統(tǒng)大小的需求,所以創(chuàng)建文件系統(tǒng)不成功。解決此問題的操作步驟如下:
1)Smitty hacmp 回車,如下圖:選擇:system Management(C-SPOC),回車,如下圖所示:
/ 6 選擇:HACMP Logical Volume Management,回車,如下圖所示:選擇:Shared Logica Volumes,回車,如下圖所示:選擇:Change a Shared Logical Volume,回車,如下圖所示:選擇新建文件系統(tǒng)所在的邏輯卷(默認為lv01),回車,所下圖所示:
/ 6 把MAXIMUM NUMBER OF LOGICAL PARTITIONS 這個值改為10240或者更大,然后回車,提示成功即可。注:
1.邏輯卷的屬性修改完成后,按新建文件系統(tǒng)的步驟重新操作一次,即可新建成功。
2.所有的這些操作都必須是在HA上進行,如果不是在HA上進行操作,需在HA上把操作的內(nèi)容進行同步。
/ 6
第五篇:文件管理
文件管理制度
檔案管理亦稱檔案工作。是檔案館(室)直接對檔案實體和檔案信息進行管理并提供利用服務(wù)的各項業(yè)務(wù)工作的總稱,也是國家檔案事業(yè)最基本的組成部分。
第一章 總 則
第一條 為適應(yīng)新時期基層組織建設(shè)工作的需要,切實加強黨員檔案管理工作,有效地保護和利用檔案,使黨員的檔案管理工作進一步制度化、規(guī)范化,根據(jù)《中國共產(chǎn)黨章程》、《中國共產(chǎn)黨發(fā)展黨員工作細則(試行)》及《中華人民共和國檔案法》的有關(guān)規(guī)定,結(jié)合我市實際,制定本辦法。
第二條 全市黨員檔案管理工作由市委組織部統(tǒng)一指導(dǎo)。各級機關(guān)、團體、企業(yè)事業(yè)單位的干部職工的黨員檔案,由當(dāng)?shù)厝耸聶n案管理部門或本單位人事部門存入個人人事檔案管理;未落實工作單位的大中專畢業(yè)生黨員,其黨員檔案由當(dāng)?shù)厝瞬沤涣鞣?wù)中心存入其人事檔案統(tǒng)一管理;不屬于上述兩種情況的城鎮(zhèn)人員中的黨員,其黨員檔案由本人所在社區(qū)黨組織管理;農(nóng)村黨員檔案由所在鄉(xiāng)鎮(zhèn)黨委管理;被開除、除名的黨員,其黨員檔案由原管檔單位管理;死亡黨員檔案由原管檔單位管理。第三條 黨員檔案管理工作必須貫徹執(zhí)行黨和國家有關(guān)檔案、保密的法規(guī)和制度。
第二章 檔案內(nèi)容
第四條 黨員檔案主要包括下列內(nèi)容:
(一)發(fā)展黨員材料。主要包括入黨申請書、《申請入黨人登記表》、《入黨積極分子培養(yǎng)考察表》、思想?yún)R報、《超前考察登記表》、入黨積極分子培訓(xùn)證書、政審材料、政審綜合報告、自傳、接收預(yù)備黨員公示情況報告、《入黨志愿書》、接收預(yù)備黨員表決票、《預(yù)備黨員考察寫實登記簿》、轉(zhuǎn)正申請書、預(yù)備黨員轉(zhuǎn)正公示情況報告、預(yù)備黨員轉(zhuǎn)正表決票。
(二)獎勵材料。各級黨組織授予優(yōu)秀共產(chǎn)黨員、優(yōu)秀黨務(wù)工作者等各種榮譽稱號的授獎決定和嘉獎通報等材料。
(三)處分材料。黨員違犯黨紀國法所受的黨紀政紀處分決定(免于處分的處理意見)等材料;在民主評議黨員中認定為不合格的主要事實依據(jù)材料;黨支部對其做出的限期改正、勸退和除名等處置的決定、向上級黨組織的報告材料、上級黨組織的批復(fù)意見;取消預(yù)備黨員資格的組織意見,延長預(yù)備期的有關(guān)材料。
(四)其它材料。民主評議和組織考核形成的綜合材料;黨員的退黨申請書、黨支部大會討論并宣布對其除名的決定、向上級黨組織呈報的備案材料。
第三章 檔案保管
第五條 有人事檔案的黨員,入黨轉(zhuǎn)正后,要將入黨申請書、政審材料、政審綜合報告、自傳、《入黨志愿書》、轉(zhuǎn)正申請書及獎勵材料、處分材料和其它材料,存入本人人事檔案中。其余材料由本人所在黨支部保管。
第六條 黨支部要確定一名支部成員負責(zé)黨員檔案的管理工作。其主要職責(zé)是:負責(zé)保管黨員檔案,收集、鑒別和整理黨員檔案材料,辦理黨員檔案的查閱、借用和轉(zhuǎn)遞手續(xù),登記黨員變動情況,做好黨員檔案的安全、保密工作。
第七條 黨支部或黨委要設(shè)單獨的檔案管理室和專柜保存黨員檔案,并完善黨員檔案管理各項制度,做好防火、防蛀、防潮、防光、防盜等工作。
第八條 黨員檔案保管單位必須按照“一人一檔”的原則,為黨員建立健全檔案。
第九條 為了保持黨員檔案的準確性、完整性、連續(xù)性,黨支部每隔半年要進行一次全面檢查核對,每年年底進行一次裝訂或整理,發(fā)現(xiàn)問題及時解決。
第十條 黨員檔案管理人員應(yīng)認真履行職責(zé),管好黨員檔案。檔案發(fā)生丟失、損毀的,要追究檔案管理人員責(zé)任。
第四章 檔案查借閱
第十一條 黨員個人不得查閱、借用或指定他人查、借本人及其直系親屬的黨員檔案。
第十二條 檔案一般不外借,如果確因工作需要查閱黨員檔案,需經(jīng)黨員所在黨組織同意,借用單位提供相關(guān)證明材料,履行檔案查閱手續(xù),并應(yīng)在規(guī)定限期內(nèi)歸還。
第十三條 查閱檔案必須嚴格遵守閱檔規(guī)定和保密制度,嚴禁涂改、圈劃、抽取、撤換檔案材料,查閱者不得泄漏或擅自向外公布檔案內(nèi)容。對違反者,應(yīng)視情節(jié)輕重予以批評教育,直至紀律處分,或追究法律責(zé)任。
第十四條 因工作需要從黨員檔案中取證的,須黨員所在黨組織領(lǐng)導(dǎo)批準后辦理。
第十五條 嚴禁任何人私自保存黨員檔案或利用檔案材料營私舞弊。對違反規(guī)定者,應(yīng)視情節(jié)輕重,嚴肅處理。構(gòu)成違法的,依法處理。
第五章 檔案轉(zhuǎn)遞
第十六條 無人事檔案的黨員轉(zhuǎn)移正式組織關(guān)系后,其黨員檔案應(yīng)當(dāng)一并轉(zhuǎn)交。有人事檔案的黨員轉(zhuǎn)移正式組織關(guān)系或職務(wù)變動后,如人事主管部門相應(yīng)變動的,黨員檔案與人事檔案同時轉(zhuǎn)交。
第十七條 黨員出國出境定居停止黨籍或因私出國出境逾期不歸的,其黨員檔案交由組織部門保存?zhèn)洳椤?/p>
第十八條 轉(zhuǎn)遞檔案應(yīng)遵守下列規(guī)定:
(一)通過機要交通或派專人送取,不準郵寄,一般情況下不得交由黨員本人自帶;
(二)對必須轉(zhuǎn)出的黨員檔案,不得無故扣留,轉(zhuǎn)出時應(yīng)密封包裝;
(三)接收黨員檔案的單位收到檔案后,應(yīng)當(dāng)審核檔案的真實性,核對無誤后,在回執(zhí)上簽名蓋章,并及時將回執(zhí)退回轉(zhuǎn)出單位;
(四)轉(zhuǎn)出單位逾期一個月未收到回執(zhí),應(yīng)及時催問以防丟失。
第六章 黨員檔案材料丟失補件辦法
第十九條 原單位黨組織存在的,須由其原黨組織出具證明,并經(jīng)由上級黨委審核,證實其黨員身份,現(xiàn)所在單位黨組織要在其重新填寫的《入黨志愿書》有關(guān)欄目里注明情況和原因,提出承認其黨員資格的意見,報上級黨委審查同意后,連同原單位黨組織的有關(guān)證明材料,一并歸入本人檔案。
第二十條 原單位黨組織不存在的,黨員現(xiàn)所在單位黨組織在能夠確認其黨員身份的前提下,出具書面證明,在其重新填寫的《入黨志愿書》有關(guān)欄目里注明情況和原因,提出承認其黨員資格的意見,報上級黨組織審查同意后,將補填材料歸入本人檔案。