當前位置:首頁 » 編程語言 » c語言修復磁碟fsck函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言修復磁碟fsck函數

發布時間: 2023-06-01 23:52:38

『壹』 編寫c語言程序,實現對磁碟文件的操作。具體要求包括:

二級C大綱

下載的
基本要求

1.具有計算機的基礎知識。

2.了解操作系統的基本概念,掌握常用操作系統的使用。

3.掌握基本數據結構和常用演算法,熟悉演算法描述工具一流程圖的使用。

4.能熟練地使用一種高級語言或資料庫語言編寫程序、調試程序。

考試內容

一、基礎知識與基本操作

(一)基礎知識

1.計算機系統的主要技術指標與系統配置。

2.計算機系統、硬體、軟體及其相互關系。

3.微機硬體系統的基本組成。包括:中央處理器(運算器與控制器),內存儲器(RAM與ROM),外存儲器(硬碟、軟盤與光碟),輸入設備(鍵盤與滑鼠)輸出設備(顯示器與列印機)。

4.軟體系統的組成,系統軟體與應用軟體;軟體的基本概念,文檔;程序設計語言與語言處理程序(匯編程序、編譯程序、解釋程序)。

5.計算機的常用數制(二進制、十六進制及其與十進制之間的轉換);數據基本單位(位、字、節、字)。

6.計算機的安全操作;計算機病毒的防治。

7.計算機網路的一般知識。

8.多媒體技術的一般知識。

(二)DOS的基本操作

1.操作系統的基本能功能與分類。

2.DOS操作系統的基本組成。

3.文件、目錄、路徑的基本概念。

4.常用DOS操作,包括:

初始化與啟動;

文件操作(TYPE,COPY,DEL,XCOPY,ATTRIB);

目錄操作(DIR,MD,CD,RD,TREE,PATH);

磁碟操作(FORMAT,DISKCOPY,CHKDSK);

功能操作(VER,DATE,TIME,CLS,PROMPT,HELP);

批處理(批處理文件的建立與執行,自動批處理文件);

輸入輸出改向。

(三)WINDOWS的基本操作

1.Windows的特點、基本構成及其運行環境。

2.Windows用戶界面的基本元素。包括:窗口、圖標、菜單、對話框、按鈕、游標等。

3.Windows基本操作。包括:啟動與退出,滑鼠操作,窗口操作,圖標操作、萊單操作,對話框操作。

二、程序設計

1.能運用結構化程序設計方法編寫程序。

2.掌握基本數據結構和常用演算法。

3.能熟練使用一種高級語言或一種資料庫語言(共有QBASIC、FORTRAN、Pascal、C以及FoxBASE等五種語言,考生任選其中一種。各種語言的考試內容附後)。

三、上機操作

在指定的時間內使用微機完成下述操作:

1.完成指定的計算機基本操作(包括機器啟動和操作命令的使用)。

2. 按給定要求編寫和運行程序。

3.調試程序,包括對給出的不完善的程序進行修改和補充,使之能得到正確的結果。

C語言程序設計

(一)C語言的結構

1.程序的構成,main函數和其他函數。

2.頭文件、數據說明、函數的開始和結束標志。

3.源程序的書寫格式。

4. 語言的風格。

(二)數據類型及其運算

1.C的數據類型(基本類型、構造類型、指針類型、空類型)及其定義方法。

2.C運算符的種類、運算優先順序和結合性。

3.不同類型數據間的轉換與運算。

4.C表達式類型(賦值表達式、算術表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式)和求值規則。

(三)基本語句

1.表達式語句,空語句,復合語句。

2.數據的輸入與輸出,輸入輸出函數的調用。

3.復合語句。

4.goto語句和語句標號的使用。

(四)選擇結構程序設計

1.用if語句實現選擇結構。

2。用switch語句實現多分支選擇結構。

3.選擇結構的嵌套

(五)循環結構程序設計

1.for循環結構。

2.While和do whi1e循環結構。。

3.continue語句和break語句。

4.循環的嵌套。

(六)數組的定義和引用

1.一維數組和多維數組的定義、初始化和引用。

2.字元串與字元數組。

(七)函數

1.庫函數的正確調用。

2.函數的定義方法。

3.函數的類型和返回值。

4.形式參數與實在參數,參數值的傳遞。

5.函數的正確調用,嵌套調用,遞歸調用。

6.局部變數和全局變數。

7.變數的存儲類別(自動,靜態、寄存器、外部),變數的作用域和生存期。

8.內部函數與外部函數。

(八)編譯預處理

1.宏定義:不帶參數的宏定義;帶參數的宏定義。

2.「文件包含」處理

(九)指針

1.指針與指針變數的概念,指針與地址運算符。

2.變數、數組、字元串、函數、結構體的指針以及指向變數、數組、字元串、函數、結構體的指針變數。通過指針引用以上各類型數據。

3.用指針作函數參數。

4.返回指針值的指針函數。

5。指針數組,指向指針的指針,main函數的命令行參數。

(十)結構體(即「結構」)與共用體(即「聯合」)

1.結構體和共用體類型數據的定義方法和引用方法。

2.用指針和結構體構成鏈表,單向鏈表的建立、輸出、刪除與插入。

(十一)位運算

1,位運算符的含義及使用。

2.簡單的位運算。

(十二)文件操作

只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。

1. 文件類型指針(FILE類型指針)。

2. 文件的打開與關閉(fopen,fclose)。

3. 文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數),文件的定位(rewind,fseek函數)。

希望你有用

『貳』 請問C語言對文件的讀取有哪些函數,都有什麼功能像fseek();fscanf();fread......什麼的

C語言文件操作函數

13.1C語言文件
1,兩種文件存取方式(輸入,輸出方式)
順序存取
直接存取
2,數據的兩種存放形式
文本文件
二進制文件

13.2文件指針
定義文件類型指針變數的一般形式:
FILE *指針變數名;
例如:
FILE *fp1,*fp2;

13.3打開文件
在使用文件之前,需打開文件.在C里使用fopen函數打開文件.格式為:
fopen(文件名,文件使用方式);
此函數返回一個指向FILE類型的指針.如:
FILE *fp;
fp=fopen("file_1","r");
如果調用成功,fp就指向file_1,否則返回為NULL,所以為了保證文件的正確使用,要進行測試.採用如下語句:
If((fp=fopen("file_1","r"))==NULL)
{
printf("Cannot open this file\n");
exit(0);
}
最常用的文件使用方式及其含義如下:
1,"r".為讀而打開文本文件.(不存在則出錯)
2,"rb".為讀而打開二進制文件.
3,"w".為寫而打開文本文件.(若不存在則新建,反之,則從文件起始位置寫,原內容將被覆蓋)
4,"wb".為寫而打開二進制文件.
5,"a".為在文件後面添加數據而打開文本文件.(若不存在,則新建;反之,在原文件後追加)
6,"ab".為在文件後面添加數據而打開一個二進制文件.
最常用的文件使用方式及其含義如下:
7,"r+".為讀和寫而打開文本文件.(讀時,從頭開始;在寫數據時,新數據只覆蓋所佔的空間,其後不變)
8,"rb+".為讀和寫而打開二進制文件.只是在隨後的讀寫時,可以由位置函數設置讀和寫的起始位置.
9,"w+".首先建立一個新文件,進行寫操作,隨後可以從頭開始讀.(若文件存在,原內容將全部消失)
10,"wb+".功能與"w+"同.只是在隨後的讀寫時,可以由位置函數設置讀和寫的起始位置.
最常用的文件使用方式及其含義如下:
11,"a+".功能與"a"相同;只是在文件尾部添加新的數據後,可以從頭開始讀.
12,"ab+".功能與"a+"相同;只是在文件尾部添加新數據之後,可以由位置函數設置開始讀的起始位置.

13.4關閉文件

當文件的讀寫操作完成之後,使用fclose函數關閉文件.格式如下:
fclose(文件指針)
如:fclose(fp);

13.5調用getc(fgetc)和putc(fputc)函數進行輸入和輸出
1,調用putc(或fputc)函數輸出一個字元
調用形式為:
putc(ch,fp);
功能是:將字元ch寫到文件指針fp所指的文件中去.當輸出成功,putc函數返回所輸出的字元;否則,返回一個EOF值.EOF是在stdio.h庫函數文件中定義的符號常量,其值等於-1.

13.5調用getc(fgetc)和putc(fputc)函數進行輸入和輸出
例如:把從鍵盤輸入的文本按原樣輸出到名為file_1.dat文件中,用字元@作為鍵盤輸入結束標志.

#include
Void main()
{
FILE *fpout;
char ch;
if(fpout=fpopen("file_1","w")==NULL)
{
printf("Cannot open this file!\n");
exit(0);
}
ch=getchar();
while(ch!='@')
{ fputc(ch,fpout); ch=getchar(); }
fclose(fpout);
}
2.調用getc(或fgetc)函數輸入一個字元
調用形式為:
ch=getc(pf);
功能是:從pf指定的文件中讀如一個字元,並把它作為函數值返回.
例如:把一個已存在磁碟上的file_1.dat文本文件中的內容,原樣輸出到終端屏幕上.
#include
void main(){
FILE *fpin;
char ch;
if((fpin=fopen("file_1.dat","r"))==NULL)
{ printf("Cann't open this file!\n");exit(0);}
ch=fgetc(fpin);
while (ch!=EOF)
{ putchar(ch); ch=fgetc(fpin);}
fclose(fpin);
}

13.6判斷文件結束函數feof
EOF可以作為文本文件的結束 標志,但不能作為二進制文件的結束符.feof函數既可以判斷二進制文件,又可以判斷文本文件.
例:編寫程序,用於把一個文本文件(源)復制到另一個文件(目的)中,源文件名和目的文件名由命令行輸入.命令形式如下:
可執行程序名 源文件名 目的文件名
#include
void file(FILE* ,FILE *);
void main(int argc,char *argv[]){
FILE *fpin,*fpout;
if(argc==3)
{ fpin=fopen(argv[1],"r");
fpout=fopen(argv[2],"w");
file(fpin,fpout);
fclose(fpin);fclose(fpout);
}
else if(argc>3)
printf("The file names too many!!\n";
else
printf("There are no file names for input or output!!\n );
}
void file(FILE *fpin,FILE *fpout)
{
char ch;
ch=getc(fpin);
while(!feof(fpin))
{putc(ch,fpout); ch=getc(fpin);}
}

13.7fscanf函數和fprintf函數
1,fscanf函數
fscanf只能從文本文件中按格式輸入,和scanf函數相似,只不過輸入的對象是磁碟上文本文件中的數據.調用形式為:
fscanf(文件指針,格式控制字元串,輸入項表)
例如:fscanf(fp,"%d%d",&a,&b);
fscanf(stdin,"%d%d",&a,&b);
等價於scanf("%d%d",&a,&b);
3.fprintf函數
fprintf函數按格式將內存中的數據轉換成對應的字元,並以ASCII代碼形式輸出到文本文件中.Fprintf函數和printf函數相似,只是將輸出的內容按格式存放到磁碟的文本文件中.調用形式如下:
fprintf(文件指針,格式控制字元串,輸出項表)
如:fprintf(fp,"%d %d",x,y);
以下語句 fprintf(stdout,"%d %d",x,y)

13.8fgets函數和fputs函數
1,fgets函數
fgets函數用來從文件中讀入字元串.調用形式如下:
fgets(str,n,fp);
函數功能是:從fp所指文件中讀入n-1個字元放入str為起始地址的空間內;如果在未讀滿n-1個字元時,則遇到換行符或一個EOF結束本次讀操作,並已str作為函數值返回.
13.8fgets函數和fputs函數
2,fputs函數
fput函數把字元串輸出到文件中.函數調用形式如下:
fputs(str,fp);
注意:為了便於讀入,在輸出字元串時,應當人為的加諸如"\n"這樣的字元串.

#include <stdio.h>
#include <iostream>

int main(int argc, char *argv[])
{
char arr[10] ;
char *ap = "hello!" ;
FILE *fp ;
if ((fp = fopen("hello.txt", "wt+")) == NULL)
{
printf("error!") ;
exit(1) ;
}
fputs(ap, fp) ;
rewind(fp) ; //
fgets(arr, 10, fp) ;
printf("%s\n", arr) ;
fclose(fp) ;
return 0 ;
}

13.9fread函數和fwrite函數
例如有如下結構體:
struct st{
char num[8];
float mk[5];
}pers[30];
以下循環將把這30個元素中的數據輸出到fp所指文件中.
for(i=0;i<30;i++)
fwrite(&pers[i],sizeof(struct st),1,fp);

13.9fread函數和fwrite函數
以下語句從fp所指的文件中再次將每個學生數據逐個讀入到pers數組中.
i=0;
fread(&pers[i],sizeof(struct st),1,fp);
while(!feof(fp))
{ i++;
fread(&pers[i],sizeof(struct st),1,fp);
}

13.10文件定位函數
1,fseek函數
fseek函數用來移動文件位置指針到指定的位置上,接著的讀或寫操作將從此位置開始.函數的調用形式如下:
fseek(pf,offset,origin)
pf:文件指針
offset:以位元組為單位的位移量,為長整形.
origin:是起始點,用來指定位移量是以哪個位置為基準的.
1,fseek函數
位移量的表示方法
標識符 數字 代表的起始點
SEEK_SET 0 文件開始
SEEK_END 2 文件末尾
SEEK_CUR 1 文件當前位置
假設pf已指向一個二進制文件,則;
fseek(pf,30L,SEEK_SET)
fseek(pf,-10L*sizeof(int),SEEK_END)
對於文本文件,位移量必須是0;如:
fseek(pf,0L,SEEK_SET)
fseek(pf,0L,SEEK_END)
2. ftell函數
ftell函數用以獲得文件當前位置指針的位置,函數給出當前位置指針相對於文件開頭的位元組數.如;
long t;
t=ftell(pf);
當函數調用出錯時,函數返回-1L.
我們可以通過以下方式來測試一個文件的長度:
fseek(fp,0L,SEEK_END);

t=ftell(fp);
3.rewind函數
調用形式為:
rewind(pf);
函數沒有返回值.函數的功能是使文件的位置指針回到文件的開頭.

13.10文件應用
在磁碟上的test.txt文件中放有10個不小於2的正整數,用函數調用方式編寫程序.要求實現:
1,在被調函數prime中,判斷和統計10個整數中的素數以及個數.
2,在主函數中將全部素數追加到磁碟文件test.txt的尾部,同時輸出到屏幕上.
#include
#include
Int prime(int a[],int n)
{
int I,j,k=0,flag=0;
for(i=0;i { for(j=2;j if(a[i]%j==0)
{ flag=0; break;}
else flag=1;
if(flag)
{a[k]=a[i];k++;}
}
return k;
}
void main(){
int n,I,a[10];
FILE *fp;
fp=fopen("test1-2.txt","r+");
for(n=0;n<10;n++)
fscanf(fp,"%d",&a[n]);
n=prime(a,n);
fseek(fp,o,2);
for(i=0;i {printf("%3d",a[i]);
fprintf(fp,"%3d",a[i]);
}
fclose(fp);

『叄』 linux中檢測、修復磁碟的命令是啥

chkdsk。

chkdsk的全稱是checkdisk,就是磁碟檢查的意思。這個東西是當你的系統崩潰或者非法關機的時候由系統來調用檢查磁碟的,也可以由手工通過命令行調用來檢查某一個磁碟分區。

該工具基於被檢測的分區所用的文件系統,創建和顯示磁碟的狀態報告。Chkdsk 還會列出並糾正磁碟上的錯誤。如果不帶任何參數,chkdsk 將顯示當前驅動器中的磁碟狀態。

(3)c語言修復磁碟fsck函數擴展閱讀

chkdsk檢查適用情況:

1、windows7系統進入到歡迎界面,無法輸入用戶密碼,即鍵盤沒反應,但鍵盤操作bios、F8功能鍵等進入歡迎界面之前的操作都正常,可以進入安全模式;

2、系統啟動過程中藍屏,即藍底白字屏幕顯示,低端顯示stop:0x???????字樣,即藍屏代碼。

3、磁碟分區變成ram格式。

4、突然斷電,重啟電腦無法進入系統;

5、電腦運行速度非常慢,磁碟指示燈非常忙,殺毒軟體檢測不到病毒。

『肆』 C語言中清除內存緩沖區的函數是什麼

是I/O 函數分為「帶緩沖」的和「不帶緩沖」的兩類。

帶緩沖的 I/O 函數寫數據時,並不直接寫磁碟介質,而是將數據先寫到這塊內存緩沖中,之後用戶空間緩沖中的數據會被傳送到系統緩沖中。

linux 內核會將系統緩沖中的數據送完磁碟驅動器(fsync函數可以加速這一過程),這之後,數據才真正的被寫入磁碟。

因為目前內存的讀寫速度往往遠大於硬碟的讀寫速度(常 ms 級)。因此,緩沖區的建立可以盡力避免太過頻繁的寫磁碟。

對於硬碟來說,寫入一個位元組可能跟寫入一個扇區沒什麼兩樣,程序員每次寫入的數據也許就幾個位元組,所以可以將每次寫入的幾個位元組放入緩沖區,排列組合成一整塊數據再寫入,也能極大的提升效率。

(4)c語言修復磁碟fsck函數擴展閱讀

1、帶緩沖的 I/O 讀函數讀取數據之前,則會首先判斷用戶空間的進程緩沖區是否包含數據,如果沒有,則繼續判斷系統緩沖區是否包含數據。

2、「帶緩沖」的 I/O 讀函數從磁碟讀取數據時,並不只讀取調用者指定的讀取位元組數。讀函數可能一次性讀取一個扇區(常常是 512B)保存在緩沖區里,只返回給程序員需要的 10 位元組。