在操作系统级别看存储空间的话,是分为很多的block块,这些block块是分为很多种类的
存储映射I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间(内存)中的一个缓冲区相映射。这样的话,当从缓冲区中取数据,就相当于读文件中的相应的字节,而将数据存入缓冲区,则相应的字节就自动写入文件。这样,就可在不使用re...
冒泡排序:Bubble sort,也叫做起泡排序,是一种交换性质的排序,基本思想是相邻两条记录进行比较,不符合规则就交换,符合规则不交换。冒泡排序的具体步骤描述如下...
最短路径问题最短路径问题是我们经常会面临的一种决策问题。在图论中,非网图(边没有权值)的最短路径就是两个顶点之间经过边数最少的路径。对于网来说,由于每条边都有权值,所谓的最短路径是指,两个顶点之间经过的边加权之后...
函数指针做函数参数是C语言中非常重要的一种语法,函数指针约定了函数的返回值和函数参数,功能开发者只要根据这个约定实现功能函数,就可以通过以函数指针为参数的统一接口进行调用,来使用这个函数的功能,实现了功能开发与...
fork()用于创建一个子进程,我们在shell下执行一个命令其实也是通过fork()实现的,fork()是Linux下最基本的一个系统调用。fork()最大的特点就是一次调用,两次返回,两次返回主要是区分父子进程,因为fork()之后将出现两个进程...
实际上这是printf()函数缓冲区的机制造成的,缓冲区我们在Linux系统调用专题中已经讲过了。在系统调用时,遇到 '/n' 输出行缓冲,我们这里第一个printf()函数中没有 'n' 字符,所以第一个printf()函数...
我们在使用fork()系统调用之后,创建出来的子进程是对父进程的复制,也就是说子进程和父进程执行的是相同的程序,虽然说父子进程可能执行的是不同的代码分支(if else语句),但是程序流程是一样。我们要想在新创建的子进程中执...
僵尸进程:子进程结束,父进程没有回收子进程的资源(PCB),这个资源必须要由父进程回收,否则就形成僵尸进程。
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户...