操作系统实验五

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档