- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“网络操作系统”课程
实验报告
姓 名:
学 号:
专 业: 计算机科学与技术
编 制 时 间: 2012年5月 日
指 导 教 师:
北京联合大学-信息学院编制Linux –文件的系统调用
实验目的
熟悉有关文件的系统调用,学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握。使用fopen、fread、fwrite 等系统调用用C语言编程实现复制文件。
实验过程
在stu2文件夹里建立hello.c
在hello.c文件里编辑源代码。
在桌面右击打开终端,返回到stu根目录
编译c文件
gcc -o hello.out hello.c
运行文件:
./ hello.out
实验步骤及分析
1.事先在stu2文件夹中建立一个文件hxh.txt,打开并输入I’m huxihuan!!!
2.在hello.c文件中输入:
#include stdio.h
Int main()
{
int len;
char *buffer[1024];
FILE *in,*out;//定义两个文件流,分别用于文件的读取和写入
if ((in=fopen(“/home/stu2/hxh.txt”,”r”))==NULL){//打开源文件的文件流,其意义是在当前目录下打开文件,只允许进行“读”操作,并使指向该文件printf(“the hxh.txt can’t open\n”);
exit(0);//exit(0)作用是关闭所有打开的文件,并终止程序的执行。参数0表示程序正常结束,非0参数通常表示不正常的程序结束。
}
if((out=fopen(“/home/stu2/hxh1.txt”,”w”))==NULL){//打开目标文件的文件流,其意义是在当前目录下打开文件,只允许进行“”操作,并使指向该文件“the file hxh1.txt can’t open\n”);
exit(0);
}
while((len=fread(buffer,1,1024,in))0)//源文件中读取数据并放到缓冲区中,表示从in所指的文件中,每次读1个字节送入字符组buffer中,连续读1024次,即读1024个字符到buffer中。第二个参数也可写成sizeof(char)
{ fwrite(buffer,1,len,out);//将缓冲区的数据写到目标文件中,表示从buffer的地址开始的内存单元按照1个字节的大小取一个数据块,写入out指向的文件中
}
fclose(out);关闭文件的写入流
fclose(in);关闭文件的读取流
return 0;
}
注释
(1)函数用来打开一个文件,一般调用形式: 文件指针名=fopen(文件名,使用文件方式); “文件指针名”必须是被说明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
(2)函数功能用来读写一个数据块。
一般调用形式 fread(buffer,size,count,fp);
? fwrite(buffer,size,count,fp);
说明? buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
? size:要读写的字节数;
?count:要进行读写多少个size字节的数据项;
?fp:文件型指针。
?注意完成次写操(fwrite())作后必须关闭流(fclose());
???????????完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出函数关闭一个流
: int fclose(FILE *stream);。注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。 函数: 关闭所有文件,终止正在执行的程序: void exit(int status);
所在头文件:stdlib.h
exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出 参 数 : status //程序退出的返回值.
1
文档评论(0)