![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux系统编程
文章平均质量分 84
进程、线程、进程间通讯、多线程、socket套接字
兔子警官QAQ
这个作者很懒,什么都没留下…
展开
-
I2C总线式驱动开发
Linux I2C驱动原创 2022-12-12 17:51:23 · 1738 阅读 · 2 评论 -
linux-多任务同步和互斥
文章目录同步互斥概述互斥锁互斥锁的概念互斥锁的操作初始化互斥锁互斥锁上锁互斥锁解锁销毁互斥锁互斥锁案例信号量信号量的概念信号量用于互斥信号量用于同步信号量的操作信号量的初始化信号量P操作信号量V操作获得信号量的计数值信号量的销毁信号量的使用同步互斥概述在多任务操作系统中,同时运行的多个任务可能都需要访问/使用同一种资源多个任务之间有依赖关系,某个任务的运行依赖于另一个任务同步和互斥就是用于解决这两个问题的。互斥:一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。PO原创 2021-05-05 22:03:24 · 451 阅读 · 1 评论 -
linux-线程
文章目录线程概述线程的概念线程和进程的比较多线程的用处线程的基本操作线程的创建线程等待线程分离线程分离函数:pthread_detach线程退出线程退出函数线程的取消pthread_cancel()线程的取消状态pthread_setcancelstate()线程的取消点pthread_testcancel()线程的取消类型pthread_setcanceltype()线程退出清理pthread_cleanup_push()pthread_cleanup_pop()线程概述线程的概念每个进程都拥有自原创 2021-05-05 18:38:44 · 156 阅读 · 1 评论 -
linux进程间通讯-共享内存
文章目录共享内存概述共享内存的特点共享内存操作在ubuntu 12.04中共享内存限制值如下在ubuntu 12.04中共享内存限制值如下创建共享内存共享内存映射(attach)解除共享内存映射(detach)共享内存控制共享内存概述共享内存允许两个或者多个进程共享给定的存储区域。共享内存的特点1、共享内存是进程间共享数据的一种最快的方法。一个进程向共享的内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。 2、使用共享内存要注意的是多个进程之间对一个给定存储区访问的互斥。原创 2021-04-28 19:22:15 · 268 阅读 · 0 评论 -
linux进程间通讯-消息队列
文章目录IPC对象查看已经创建的IPC对象:消息队列概述消息队列的概念消息队列的特点在ubuntu 12.04中消息队列限制值如下ftok函数创建消息队列 -- msgget( )发送消息 -- msgsnd( )接收消息 -- msgrcv( )消息队列的控制IPC对象除了最原始的进程间通信方式信号、无名管道和有名管道外,还有三种进程间通信方式,这 三种方式称之为IPC对象。IPC对象分类:消息队列、共享内存、信号灯集。IPC对象也是在内核空间开辟区域,每一种IPC对象创建好之后都会将其设置为全原创 2021-04-28 13:09:55 · 382 阅读 · 0 评论 -
linux进程间通讯-信号
文章目录进程间通信功能信号信号的概念产生信号的方式信号的默认(缺省)处理方式进程接收到信号后的处理方式kill函数进程间通信功能数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程 希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变。Linux操作系统支持的主要进程间通信的通信机制进程间通信的原创 2021-04-28 10:26:00 · 318 阅读 · 0 评论 -
linux进程间通讯-有名管道
文章目录阻塞和非阻塞概念通过fcntl函数设置文件的阻塞特性文件描述符概述文件描述符的复制阻塞和非阻塞概念如果是阻塞,管道中没有数据,read会一直等待,直到有数据才会继续运行,否则一 直等待。如果是非阻塞,read函数运行时,会先看一下管道中是否有数据,如果有数据,则正常运行读取数据,如果管道中没有数据,则read函数会立即返回,继续下面的代码运行。通过fcntl函数设置文件的阻塞特性功能函数设置为阻塞:fcntl(fd, F_SETFL, 0);设置为非阻塞:f原创 2021-04-26 20:48:27 · 427 阅读 · 0 评论 -
linux进程间通讯-无名管道
文章目录无名管道无名管道的创建 -- pipe函数无名管道的读写规律无名管道无名管道概述管道(pipe)又称无名管道。无名管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符。任何一个进程在创建的时候,系统都会 给他分配4G的虚拟内存,分为3G的用户空间和1G 的内核空间,内核空间是所有进程公有的,无名管道就是创建在内核空间的,多个进程知道 同一个无名管道的空间,就可以利用他来进行通信。无名管道虽然是在内核空间创建的,但是会给当前用户进程两个文件描述符,一个负责执行 读操作,一个负责执行原创 2021-04-24 21:09:21 · 229 阅读 · 0 评论 -
linux-进程的替换exec函数族
文章目录一、进程的替换二、exec函数族execl函数execlp函数execvp函数一、进程的替换exec族函数函数的作用:我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。exec函数族,是由六个exec函数组成的。1、exec函数族提供了六种在进程中启动另一个程序的方法。2、exec函数族可以根据指定的文件名或目录名找到可执行文件。3、转载 2021-04-24 15:27:05 · 318 阅读 · 0 评论 -
linux-进程
文章目录一、进程概述二、进程控制进程的创建--fork函数获得进程号的函数进程的挂起一、进程概述进程的定义程序和进程的区别: 程序:是静态的,存放在磁盘上的可执行文件。进程:是动态的,是运行在内存中的程序的执行实例。程序是一些指令的有序集合,而进程是程序执行的过程,进程是程序的一次执行过程。 进程的状态是变化的,其包括进程的创建、调度和消亡。 只要程序运行,此时就是进程,程序每运行一次,就会创建一个进程。在linux系统中,进程是管理事务的基本单元。 进程拥有自己独立的处理环境和系统资源(处理原创 2021-04-24 11:18:22 · 339 阅读 · 0 评论 -
Linux系统编程
文章目录一、系统编程概述二、系统调用I/O函数一、系统编程概述在有操作系统的环境下编程,并使用操作系统提供的系统调用及各种库,对系统资源进行访问。系统编程主要就是为了让用户能够更好和更方便的操作硬件设备,并且对硬件设备也起到保护作用。我们所写的程序,本质就是对硬件设备的操作,所以操作系统提供接口可以对硬件进行操作,这就是系统编程。系统调用本质都是要对硬件设备进行操作,但是linux操作系统在硬件之上设置了内核,也就是只有内核才可以直接操作硬件设备。如果想操作内核,需要调用内核的系统调用。内核中的原创 2021-04-23 17:31:51 · 256 阅读 · 0 评论