__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 步骤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
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
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
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
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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux实验指导书(3)在线全文阅读。
相关推荐: