1.我们学习了fread和fwite的功能,并学习了fread和fwite的一些基本命令。例如:
fread的ptr命令:存放读入记录的缓冲区;size命令读取记录的大小;nmemb命令读取的记录数;stream命令要读取的文件流;
ptr指向带有最小尺寸 sizenmemb 字节的内存块的指针。size读取的每个元素的大小。nmemb元素的个数。stream 指向 FILE 对象的指针。
接下来的fwite功能的一些基本命令:prt命令存放写入记录的缓冲区;size命令写入记录的大小;nmemb命令写入的记录数;stream命令要读取的文件流;
在做实验楼上的实验室,由于没有搞清楚读和写的区别,导致自己第一次实验的时间太长,当我们运行“wb”时,无法读取数据只能写入,而当“rb”时只能读。
2.第二节我们学习了fork()函数
fork()函数用于从已存在的进程中创建一个新进程,新进程称为子进程,而原进程称为父进程。
使用fork()函数得到的子进程是父进程的一个复制品,从父进程处继承了整个进程的地址空间,而子进程所独有的只有它的进程号、资源使用和计时器等,使用fork()函数,执行速度不是很快。
fork的头文件#include<sys/types.h>和#include<unistd.h>
3.关于exec族函数
exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。
exec族的各个函数
int execl、int execv、int execle、int execve、int execlp、int execvp。
我们主要是学习编译以及运行这些函数。
4.关于exit()和_exit()函数
exit()和_exit()函数都是用来终止进程的。
当程序执行到exit()或_exit()时,进程会无条件地停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。
_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构。
exit()函数则在这些基础上做了一些包装,在执行退出之前加了若干道工序。
5.关于wait()和waitpid()函数
wait()函数是用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接到了一个指定的信号为止。
如果该父进程没有子进程或者他的子进程已经结束,则wait()就会立即返回。
waitpid()作用和wait()一样,但它并不一定要等待第一个终止的子进程,它还有若干选项,如可提供一个非阻塞版本的wait()功能,也能支持作业控制。
以上就是本周的学习内容,本周我主要存在的问题是fr函数和fw函数使用不够熟练导致练习时间过长,希望大家引以为戒,能给大家带来帮助。
转载于:https://www.cnblogs.com/zengxiangyang/p/6883348.html