Linux实验指导书(3)

2019-02-15 14:43

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 步骤6:学习并分别使用标准C的文件操作函数和Linux的系统调用创建一个对学生基本信息进行操作(插入、修改和删除)的C程序,学生基本信息以结构体的形式存储在文件stu.info中,struct stu_info的定义如下: struct stu_info { };

char stu_num[12]; char name[10];

short int sex;/*0为女生,1为男生*/ char mobile_phone[12];

3、实验结论

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4、程序清单

//程序清单 3-1 #include #include

11

int main(void) { char c; FILE *in,*out;

if((in = fopen(\{ perror(\ exit(0);

}

out = fopen(\

while((c = fgetc(in))!=EOF) fputc(c,out); }

//程序清单 3-2 #include #include #include

int main() {

// char block[1024]; char c; int in, out; int nread;

in = open(\

out = open(\//将注释打开,并将两条语句的后一句注释掉,重新编译执行。 // while((nread = read(in,block,sizeof(block))) > 0) while((nread = read(in,&c,sizeof(c))) > 0) // write(out,block,nread); write(out,&c,nread); }

//程序清单 3-3 #include

12

#include #include #include #include

char buf1[] = \char buf2[] = \

void err_exit(char *err_s) { perror(err_s); exit(1);

}

int main(void) {

FILE *fp; if((fp = fopen(\

err_exit(\ if(fwrite(buf1,sizeof(buf1),1,fp)!=1)

err_exit(\ if(fseek(fp,40,SEEK_SET)==-1)

err_exit(\ if(fwrite(buf2,strlen(buf2),1,fp)!=1)

err_exit(\ fclose(fp);

}

//程序清单 3-4 #include #include #include #include #include

char buf1[] = \char buf2[] = \

void err_exit(char *err_s)

13

{ perror(err_s); exit(1);

}

int main(void) { int fd; if((fd = open(\

err_exit(\ if(write(fd,buf1,10)!=10)

err_exit(\

if(lseek(fd,40,SEEK_SET)==-1)

err_exit(\ if(write(fd,buf2,10)!=10)

err_exit(\}

14

实验四 Linux下进程操作与进程间通信

1、实验目的

(1) 学习和掌握fork等系统调用的基本使用方法。 (2) 利用Linux中的管道实现父子进程间的同步。 2、实验内容与步骤

步骤1:使用Vi将程序清单4-1的程序输入、编译并运行,学习和掌握fork的基本调用方法。

步骤 2:使用Vi将程序清单4-2、4-3和4-4的程序输入、利用gcc分别编译这三个程序,写出编译命令和编译结果,如果不成功,尝试利用gdb调试。

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 步骤3:写出编译这三个程序的makefile,然后利用make进行编译,谈谈这么做的好处。 __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 步骤4:运行这三个程序,写出运行结果。

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 步骤5:屏幕上显示出的执行结果是哪一个进程执行的结果?

15


Linux实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2017学年仁爱版八年级英语初二上册Unit3单元测试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: