操作系统实验五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统》实验指导(五)
Linux文件操作与命令接口(综合性 2学时)
1、实验目的:
1)熟悉LINUX文件系统;
2)通过编写文件操作的程序,进一步掌握操作系统的文件管理机制。
3)掌握简单的用户接口(字符菜单)的设计方法。
2、实验内容:
(1)编写程序p.c,其功能是从键盘输入两个实数,输出这两个实数的平方和,生成可执行文件为pow。记录编译的命令和结果。
#include
main()
{
double a,b;
scanf("%lf%lf",&a,&b);
printf("%lf",a*a+b*b);
}
(2)在LINUX下编写显示文件内容的程序mycat.c,要求在运行时能提示输入文件名,当完成文件名输入后,在屏幕上显示文件内容。
#include
main()
{
FILE *fp;
char buff[50];
printf("请输入文件名:");
scanf("%s",buff);
fp=fopen(buff,"r");
char ch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
显示pow.c的内容
(3)设计一个字符菜单的接口界面,其功能是能根据用户的选择,运行相应的程序模块,实现诸如改名文件、删除文件、显示文件等功能。(提示:要先将各模块分别命名成各函数,以便于主程序(main.c)调用。可参考程序中的命名方法,各函数名可以自定。) 参考程序main.c:
#include
void create_f()
{
char filename[20];
FILE*fp;
printf("请输入创建的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL)
{ printf("创建文件失败!\n"); getchar(); return; }
printf("%s:创建完成\n",filename);
}
void copy_f()
{
char filename1[20];
char filename2[20];
int c;
printf("请输入要复制的文件名:");
scanf("%s",filename1);
printf("请输入复制成的文件名:");
scanf("%s",filename2);
FILE *fp1, *fp2;
fp1=fopen(filename1, "rb");
if(fp1==NULL){
printf("要复制的文件不存在\n");
return;
}
fp2= fopen(filename2, "wb");
if(fp2==NULL){
printf("复制文件失败\n");
return ;
}
while((c=fgetc(fp1))!=EOF){
fputc(c, fp2);
}
fclose(fp1);
fclose(fp2);
printf("%s to %s复制完成\n",filename1,filename2); }
void type_f()
{
char filename[20];
char ch;
FILE *fp;
printf("请输入要输入的文件名:");
scanf("%s",filename);
while((fp=fopen(filename, "w")) == NULL) {
printf("无法打开文件\n");
return;
}
ch = getchar();
printf("请输入准备存储到文件的字符串,#为结束\n"); ch = getchar();
while (ch != '#') {
fputc(ch, fp);
putchar(ch);
ch = getchar();
}
fclose(fp);
putchar(10);
}
void rename_f()
{
char filename1[20];
char filename2[20];
printf("请输入要重命名的文件:"); scanf("%s",filename1);
printf("重命名文件,请输入新名字:"); scanf("%s",filename2);
rename(filename1,filename2);
}
void delete_f()
{
char filename[20];
printf("请输入要删除的文件名:\n"); scanf("%s",filename);
remove(filename);
}
main( )
{ int selection;
do {
printf("input selection\n");
printf("1-create file\n");
printf("2-copy file\n");
printf("3-type file\n");
printf("4-rename file\n");
printf("5-delete file\n");
printf("0-quit\n");
scanf("%d", &selection);
getchar( );
switch (selection) {
case 1: create_f (); break;
case 2: copy_f (); break;
case 3: type_f (); break;
case 4: rename_f (); break;
case 5: delete_f (); break;
}
} while (selection !=0);
}
1,创建文件 file1