- 博客(12)
- 资源 (17)
- 收藏
- 关注
原创 Linux应用开发之读写锁
在上一篇文章 中我们已经介绍了为什么要加锁。原文连接:https://blog.csdn.net/liumengyang1992/article/details/99715858在这里再介绍一种上锁的方式–读写锁。使用背景:当有不同的线程对共享空间进行读写的时候,如果全用互斥量,影响效率,所以就引进了读写锁,读时共享,写时互斥。读写锁用到的函数如下://销毁读写锁int pthread...
2019-08-19 17:10:55 138
原创 Linux应用开发之互斥量
在学习互斥量之前首先要明白为什么要用这个互斥量。互斥量时用在线程同步的,线程为什么要用互斥量量呢?有以下几点1、多个线程都可以对共享资源进行操作2、线程操作共享资源的先后顺序不确定3、处理器对存储器的操作不是原子操作明白了这些就知道为什么需要互斥量了。在学习互斥量之前先来了解互斥量的一些函数//定义一个互斥量并且初始化,这种方式是静态初始化pthread_mutex_t mutex...
2019-08-19 11:26:59 131
原创 Linux应用开发之线程
这一节我们来学习一下线程,首先来看一下线程创建函数int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void (start_routine) (void ), void arg);第一个参数thread:这个参数保存的是创建了的线程的ID号第二个参数attr:这个参数是线程的属性,一般设为NULL,使用默认的属性...
2019-08-16 14:15:35 117 1
原创 Linux应用开发之守护进程
守护进程是Linux中的后台服务进程,生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。创建守护进程的步骤如下:1、在子进程中进行,父进程退出2、把当前进程设为进程组组长3、改变工作目录4、改变umask掩码5、关闭父进程的文件描述符通过一个例子来看一下如何把这个步骤变成代码的形式。//通过一直不停的向daemon.log文件里面不停的写数据...
2019-08-13 14:55:43 284
原创 Linux应用开发之sigaction函数
sigaction信号注册函数,把某个用户指定的信号注册到内核。int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);signum:信号的编号*act:指向struct sigaction结构体oldact:如果不为空就把先前的动作给保存到oldact里面struct sigact...
2019-08-13 13:37:48 195
原创 Linux应用开发之信号集函数实例
这一节我们用上面提到的函数来写一个简单的测试加深对这些函数的理解。#include<stdio.h>#include<signal.h>int main(){sigset_t s,p;sigemptyset(&s);//先清空定义的信号集sigaddset(&s,SIGQUIT);//把推出信号加入到信号集中sigprocmask(SIG_...
2019-08-10 16:17:10 106
原创 Linux应用开发之信号集函数
信号是进程间通讯的一种重要的方法,可以通过命令ls -l 来查看系统都有哪些信号。下面是一些信号处理函数int sigemptyset(sigset_t *set) //判断定义的信号是否为空int sigfillset(sigset_t *set)//set指向的信号集中将包含Linux支持的信号int sigaddset(sigset_t *set, int signo)//把信号添加...
2019-08-10 16:02:09 90
原创 Linux应用开发之进程间通讯-共享内存
共享内存函数原型:voidmmap(voidaddr,size_t length,int prot,int flags,int fd,off_t offset);第一个参数addr:一般为NULL第二个参数length:需要申请的空间长度第三个参数prot:PROT_READ , PROT_WRITE,PROT_EXEC,PROT_NONE,最常用的就是前面两个 PROT_READ|PRO...
2019-08-09 16:35:08 276
原创 Linux应用开发之进程间通信-管道
通过fork创建了两个进程以后要进行进程间通信,今天来说一下进程间通信的一种方式pipe()。这个函数调用一次返回两个文件描述符一个用于读另一个用于写,有一点需要注意:pipe是半双工通信方式。下面是具体的实现代码:#include<stdio.h>#include<unistd.h>#include<string.h>int main(){ ...
2019-08-09 16:18:24 126
原创 Linux应用之多进程拷贝
父进程和子进程同时读某一个文件然后把读到的数据写到同一个文件里面。用到的函数有:fork、read、write、lseek。首先使用echo命令再文件里面写入一些数据:echo {1…20}>test1创建一个要写入数据的文档 :touch test2准备工作做好以后就可以写程序了。以下是代码示例:#include<stdio.h>#include<unis...
2019-08-09 16:07:11 252
原创 Linux应用开发之fork函数
fork函数:用于创建子进程。父进程中返回子进程ID子进程中返回0读时共享,写时复制getpid():返回调用进程的PID号getppid():返回调用进程的父进程的PID号#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/types.h>int m...
2019-08-09 15:21:21 97
原创 Linux应用开发之文件操作函数
open函数:打开一个文件并返回该文件的文件描述符。read函数:通过文件描述符来读取数据。write函数:向已经打开的文件描述符里面写数据。close函数:关闭已经打开的文件描述符。lseek函数:重定位文件的读写指针的位置。...
2019-08-09 14:44:34 179
OpenJTAG驱动,适合韦东山的open JTAG
2020-04-06
基于ESP32的自动避障小车 PCB1.rar
2020-03-23
Sheet1.rar 原理图
2020-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人