![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 75
静沐暖阳
这个作者很懒,什么都没留下…
展开
-
makefile的使用
Makefile 关系到整个工程的编译规则,一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。1.Makefile的优势 (1)自动化编译,一次写好,永久使用,如果修改也原创 2017-10-19 20:21:47 · 274 阅读 · 0 评论 -
Linux文件操作
文件操作的函数有很多,我简单总结以下几种:一、系统调用函数每个运行中的程序被称为进程,它有一些与之关联的文件描述符。有多少文件描述符可用取决于系统的配置情况。当一个程序开始运行它时,它一般会有3个已经打开的文件描述符。 0:标准输入 1:标准输出 2:标准错误1.打开或创建一个文件 头文件: #include <fcntl.h>int open(const *pathname,int fla原创 2017-10-28 19:53:09 · 295 阅读 · 0 评论 -
进程的加载过程
假如有一个可执行程序,它有自己的大小。将可执行程序加载到内存空间的各种方法,以下是我们便于理解的一种方法。如上图,如果想再加载一个程序进去,理论上空间够用,但实际上放不进去,因此这种管理方案浪费的内存较大,会产生外部碎片。因此我们可以使用页表来对内存进行管理。页表:操作系统会为每一个进程维护一个页表,页表主要记录其加载时每个块对应的页号。原创 2017-10-21 21:19:03 · 5916 阅读 · 2 评论 -
父子进程间文件共享
fork函数调用一次,返回两次。在新创建的过程中返回一次,返回值为0.在原来的进程中返回一次,返回值是新进程的pid。 通过fork函数创建的进程为新进程的父进程。即就是,通过fork创建的进程与原进程是父子关系。孤儿进程:当父进程结束以后,子进程未结束,子进程的父进程变为init。init这个进程是守护进程,它负责处理这些孤儿进程退出以后的一些状态。 僵死进程:(1)父进程未结束,子进程结束,原创 2017-11-01 17:13:38 · 2263 阅读 · 0 评论 -
Linux 下何时输出缓冲区的问题
缓冲区:由多个以不同速度或优先级运行的硬件或程序进程共享的数据存储区,在其中暂时保存数据。输出缓冲区的4个条件: 1.遇到“\n”,立即刷新缓冲区。 2.程序调用fflush函数刷新缓冲区 3.程序以exit结束,缓冲区会刷新。如果以_exit结束,缓冲区数据会被直接清空。 4.缓冲区满,也会将缓冲区数据刷新出来。1.遇到“\n”输出例1:printf()里面不加“\n”运行结果: 分析:原创 2017-10-25 15:19:28 · 2641 阅读 · 1 评论 -
进程间通讯
进程间通讯的主体是进程,方式有信号、管道(有名管道、无名管道)、信号量、消息队列、共享存储(共享内存)、套接字。管道:在内存上开辟一块空间,用文件描述符指向这段空间。一、有名管道有名管道:在文件系统的文件目录树上存在的一个文件标识,即文件名。但是管道文件不占据磁盘空间,需要传递的数据缓存在内存区域。 inode是存在磁盘上的,而且管道有大小。一般的存储设备有寄存器(一个寄存器最多只能存4个字节)、原创 2017-11-12 16:22:57 · 205 阅读 · 0 评论