
Linux
文章平均质量分 94
◤一念执着 ‖ TIAMO 丶
这个作者很懒,什么都没留下…
展开
-
Linux之互斥锁、死锁、读写锁、条件变量、生产者消费者模型
在任何平台下,都会牵扯到锁这一概念,其实在任何平台下的锁都是差不多的。这里的互斥锁,线程A和线程B访问共享资源,要先获得锁,如果锁被占用,则加锁不成功需要等待对方释放锁,若锁没有被占用,则获得锁成功加锁,然后操作共享资源,操作完成后,必须解锁,同理B也是和A一样。也就是说不能有两个进程访问共享资源。条件变量本身不是锁,但是也可以造成线程阻塞;通常配合互斥锁一起使用。使用条件变量可以使线程阻塞,等待某个条件的发生,当满足条件时,解除阻塞。原创 2024-01-07 21:14:27 · 1020 阅读 · 1 评论 -
Linux之守护进程和线程初步(守护进程的介绍和创建;线程的创建,设置线程分离....pthread)
守护进程也叫精灵(deamon)进程,是Linux后台服务进程,通常独立于控制终端并且周期性的执行某些任务或者等待处理某些发生的事件。守护进程具有以下特点:它是后台服务进程,独立于控制终端,周期性的执行某种任务,不受用户登录和注销的影响。原创 2023-11-20 00:42:02 · 279 阅读 · 1 评论 -
Linux之信号(signal kill alarm raise abort settimer sigaction SIGCHLD回收子进程)
signal函数的原型如上,其第一个参数是要注册的信号的值,一般都传入相应的宏,第二个参数是一个回调函数,也就是自己写的处理信号的函数。下面看一个关于signal函数的简单例子。原创 2023-11-04 00:29:00 · 175 阅读 · 1 评论 -
Linux之进程间通信IPC(pipe fifo mmap)
Linux环境下,各进程地址空间相互独立,任何一个进程内的变量在另一个进程中都是不可见的,所以进程之间是不能访问的,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2在从中读走,这个就叫做进程通信,简称IPC。原创 2023-10-19 01:16:30 · 115 阅读 · 1 评论 -
Linux之进程的创建与回收(fork,wait/waitpid exec函数家族)
产后这个问题的原因是我们没有设置阻塞,父进程不会阻塞等待子进程,这个逻辑只会执行一次,子进程很可能没有被回收,因此要想子进被回收就需要一个循环反复执行这个逻辑,直到wpid的值为-1即表示所有的进程被全部回收,方可退出。既然有父进程先执行完就一定有子进程先执行完的情况,子进程先执行完,父进程没有完成对子进程的回收,因此子进程就成为了一个僵尸进程,注意僵尸进程是一个已经执行完的进程,不能再使用kill命令将其杀死,但是可以通过kill命令杀死它的父进程,让这个子进程被init进程领养,最后完成子进程的回收。原创 2023-10-11 01:52:25 · 266 阅读 · 0 评论 -
Linux之文件和目录相关函数介绍(open close read write lseek stat/lstat opendir readdir closedir dup/dup2/fcntl )
open和close函数就是用来打开和关闭文件的,open函数打开文件会返回相应的文件描述符,这两个函数要放在一起使用,open函数可以带第二个参数通过命令 man 2 open 可以查看open函数的信息如上,open函数一共有三种用法,只要知道它第一个参数传入的是文件路径,那个flags就是对文件的操作(只读,追加等等),mode_t mode表示它的权限(读写执行权限 分别在属主,文件所属组,文件的其他用户中的体现)原创 2023-10-02 11:35:14 · 222 阅读 · 1 评论 -
Linux 之 makefile
在linux环境下编译文件的时候,我们经常用 gcc xxx.c -o xxx 类似这样去生成可执行文件,当我们遇到要同时编译很多个文件的时候该怎么办呢,总不能一个一个罗列出来吧,这就引出了我们今天的主角 makefile ,makefile就是可以把很多个.c文件放一起编译,只需要将源文件放入一个新编辑的文件中,以后只对那一个文件进行编译即可,每次只要执行一个make命令就能完成所有的编译,能够提高编译的效率。下面就让我们来介绍一下makefile的一些简单规则吧。目标:依赖。原创 2023-09-24 02:00:57 · 347 阅读 · 1 评论