資源簡介
1、編寫一個文件復制的C語言程序:分別使用文件的系統調用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的庫函數fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),編寫一個文件的復制程序。當上述函數中nbytes, size和nitems都取值為1時(即一次讀寫一個字節),比較這兩種程序的執行效率。當nbytes取1024字節,size取1024字節,且nitems取1時(即一次讀寫1024字節),再次比較這兩種程序的執行效率。2、分別使用fscanf和fprintf,fgetc和fputc,fgets和fputs(僅限于行結構的文本文件),實現上述的文件復制程序。你還可用其他的方法實現文件的復制功能嗎?....

代碼片段和文件信息
#include?
#include?
#include?
#define?BUF_1_MB?1024
#define?BUF_1_B?1
main()
{
int?fd1fd2;
int?n;
char?buf1[BUF_1_B]buf2[BUF_1_MB]buf3[BUF_1_B]buf4[BUF_1_MB];
FILe?*fp1*fp2;
fd1=open(“file1“O_RDONLY);
fd2=open(“file2“O_WRONLY|O_CREAT|O_EXEC0644);
while((n=read(fd1buf1BUF_1_B))>0)
{
write(fd2buf1n);
}
n=0;
while((n=read(fd1buf2BUF_1_MB))>0)
{
write(fd2buf2n);
}
fp1=open(“file1“r);
fp2=open(“file3“w);
while((n=fread(buf3BUF_1_B1fp1))>0)
{
fwrite(buf3BUF_1_B1fp2);
}
while((n=fread(buf4BUF_1_MB1024fp1))>0)
{
fwrite(buf4BUF_1_MB1024fp2);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????57856??2006-05-21?22:44??操作系統第三次實驗-發布\unix命令.doc
?????文件????????690??2006-05-21?21:34??操作系統第三次實驗-發布\CopyFile_1.c
?????文件????????218??2006-05-21?21:54??操作系統第三次實驗-發布\NamePipe_1.c
?????文件????????237??2006-05-21?21:57??操作系統第三次實驗-發布\NamePipe_2.c
?????文件????????409??2006-05-21?21:47??操作系統第三次實驗-發布\NoNamePipe.c
?????文件??????21504??2007-12-08?01:18??操作系統第三次實驗-發布\文件系統的用戶界面.doc
?????目錄??????????0??2007-12-08?01:17??操作系統第三次實驗-發布
-----------?---------??----------?-----??----
????????????????80914????????????????????7
- 上一篇:Ajax 與CGI
- 下一篇:赫夫曼編碼(C語言編寫
評論
共有 條評論