linux
文章平均质量分 92
徽川
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux应用开发基础知识(八)——内存共享(mmap和system V)
内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间<---->用户空间两者之间需要大量数据传输等操作的话效率是非常高的。原创 2024-07-03 21:30:42 · 926 阅读 · 1 评论 -
linux应用开发基础知识(七)——管道和消息队列进程通信
pfd[0]用于读管道,而pdf[1]用于写管道。注意:匿名管道只能用于亲缘关系的进程之间通信。管道通道是单向的,一边读,另一边写。管道可以用于大于两个进程共享。例如设计父进程读,两个子进程写的代码如下:有名管道有名管道也叫命名管道。1、管道文件仅仅是文件系统中的标示,并不在磁盘上占据空间。在使用时,在内存上开辟空间,作为两个进程数据交互的通道。也就是提供一个路径名与之关联,这样,即使与创建有名管道的进程不存在亲缘关系的进程,只要可以访问该路径,就能够通过这个有名管道进行相互通信。2、并且顾名思原创 2024-06-26 20:50:44 · 955 阅读 · 0 评论 -
linux应用开发基础知识(六)——互斥锁和条件变量
互斥量可以防止多个线程同时访问临界资源,而条件变量允许一个线程将某个临界资源的状态变化通知其他线程,在共享资源设定一个条件变量,如果共享资源条件不满足,则让线程到该条件变量下阻塞等待,当条件满足时,其他线程可以唤醒条件变量阻塞等待的线程。在线程之间有一种情况:线程A需要某个条件才能继续往下执行,如果该条件不成立,此时线程A进行阻塞等待,当线程B运行后使该条件成立后,则唤醒该线程A继续往下执行。在pthread库中,可以通过条件变量中,可以设定一个阻塞等待的条件,或者唤醒等待条件的线程。原创 2024-04-29 10:38:59 · 831 阅读 · 0 评论 -
linux应用开发基础知识(五)——线程
1、进程是资源分配最小单位,线程是程序执行的最小单位;2、线程间的切换效率相比进程间的切换要高3、进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;4、创建一个线程比进程开销小;5、线程占用的资源要⽐进程少很多。6、线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;(但多线程程序处理好同步与互斥是个难点)原创 2024-04-24 15:12:01 · 1024 阅读 · 0 评论 -
linux应用开发基础知识(四)——一些文件IO和标准IO的函数
(更新顺序按照笔者遇见的顺序嘿嘿嘿)原创 2024-04-17 15:33:47 · 1006 阅读 · 1 评论 -
linux应用开发基础知识(三)——标准IO和文件IO、进程
文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或unix平台。标准I/O:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准I/O库处理很多细节。例如缓存分配,以优化长度执行I/O等。标准的I/O提供了三种类型的缓存。原创 2024-04-08 15:08:40 · 1243 阅读 · 0 评论 -
linux应用开发基础知识(一)
本示例一共有三个文件,分别是hello.h、hello.c、main.c。原创 2024-04-07 19:16:58 · 910 阅读 · 0 评论 -
linux应用开发基础知识(二)
如果有3个头文件和8个c文件,则按照规则来写makefile,则如下图所示在这个 makefile 中,目标文件(target)包含:执行文件 edit 和中间目标文件(*.o ),依赖文件(prerequisites)就是冒号后面的那些 .c 文件和 .h 文件。每一个 .o 文件都有一组依赖文件,而这些 .o文件又是执行文件 edit 的依赖文件。依赖关系的实质就是说明了目标文件是由哪些文件生成的,换言之,目标文件是哪些文件更新的。原创 2024-04-03 10:47:36 · 669 阅读 · 0 评论
分享