进程间通信Communication)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应提供两个进程可以同时访问的内存空间为了完成进程间通信,需要创建管道。父进程调用该函数时将创建管道,同时获取对应于出入口的文件描述符,调用fork函数将入口或出口中的1个文件描述符传递给子进程,即可实现父子进程通信运用进程间通信保存消息的回声服务器端
进程间通信Communication)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应提供两个进程可以同时访问的内存空间为了完成进程间通信,需要创建管道。父进程调用该函数时将创建管道,同时获取对应于出入口的文件描述符,调用fork函数将入口或出口中的1个文件描述符传递给子进程,即可实现父子进程通信运用进程间通信保存消息的回声服务器端
文件描述符合打开文件之间的关系每一个文件描述符会与一个打开文件相对应,同时,不同的文件描述符也会指向同一个文件。相同的文件可以被不同的进程打开也可以在同一个进程中被多次打开。系统级的打开文件描述符表下图展示了文件描述符、打开的文件句柄以及i-node之间的关系,图中,两个进程拥有诸多打开的文件描述符。对这一标志的修改将不会影响同一进程或不同进程中的其他文件描述符
下面看看files_struct是如何使用默认的fdtab和fd_array的,init是Linux的第一个进程,它的文件表是一个全局变量,代码如下:C语言是不支持函数重载的,为什么open的系统调用可以有两个这样的open原型呢?也就是说,所有的系统调用都要先经过glibc才会进入操作系统。也就是说,所有的系统调用都要先经过glibc才会进入操作系统。前文已经说过,内核使用fd_install将文件管理结构file与fd组合起来,具体操作请看如下代码:
文件系统、文件类型及权限管理。文件类型后面的9个字符以3个为一组,第一组表示“文件所有者的权限”,第二组表示“用户组的权限”,第三组表示“其他非本用户组的权限”。文件的设备类型的时候,有提到用户权限,用户组权限,和其他用户权限。系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。种文件类型,知道如何查看文件类型,以及对文件的权限管理方式。
针对FS-MP1A开发板,除了Linux系统移植篇外,还包括其他多系列教程,包括Cortex-A7开发篇、Cortex-M4开发篇、扩展板驱动移植篇、Linux应用开发篇、FreeRTOS系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。