2014025677《嵌入式系统程序设计》第五周学习总结
实验总结
1.函数原型
fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。
fread和fwrite的函数原型分别为:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
fread和fwrite函数的返回值:
读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件末尾时返回的记录数小于nmemb,也可能返回0。
fread和fwrite函数参数的含义:
参数size指出一条记录的长度;
参数nmemb指出要读或写多少条记录,这些记录在ptr所指的内存空间中连续存放,共占size * nmemb个字节;
ptr是指向的某连续内存空间的指针;
stream是文件指针;
fread从文件stream中读出size * nmemb个字节保存到ptr中所指的内存空间中;
fwrite把ptr中的size * nmemb个字节写到文件stream中
2.fork()函数说明
fork()函数用于从已存在的进程中创建一个新进程,新进程称为子进程,而原进程称为父进程。
使用fork()函数得到的子进程是父进程的一个复制品,从父进程处继承了整个进程的地址空间,而子进程所独有的只有它的进程号、资源使用和计时器等,使用fork()函数,执行速度不是很快。
3.exec函数族说明
exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。
4.exit()和_exit()函数说明
exit()和_exit()函数都是用来终止进程的。当程序执行到exit()或_exit()时,进程会无条件地停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。
_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构
exit()函数则在这些基础上做了一些包装,在执行退出之前加了若干道工序。
实验结论
本周学习了很多东西,学习了fread和fwrite读程序与写程序,又学习了fork函数,上课跟上了老师的进度,实验的的东西又得到了巩固。