Linux
文章平均质量分 72
xieweiiot
这个作者很懒,什么都没留下…
展开
-
makefile
1.make gcc - 编译器 make - Linux自带的构建器 构建的规则在makefile中 2.makefile 文件的命名 -makefile -Makefile 3.makefile 中的规则 gcc a.c b.c c.c -o app 三部分: 目标 ,依赖,命令 目标:依赖 (tab缩进)命令 app:a.c b.c...原创 2018-08-09 13:27:20 · 145 阅读 · 0 评论 -
Linux 读写锁
1.读写锁是几把锁 一把锁 pthread_rwlock_t lock; 2.读写锁的类型 读锁 - 对内存做读操作 写锁 - 对内存做写操作 3.读写锁的特性 线程A加读锁成功,又来了三个线程,做读操作,可以加锁成功 线程A加写锁成功,又来了三个线程,做读操作,三个线程阻塞 线程A加读锁成功,又来了B线程加写锁阻塞,又来了C线程加读锁阻塞 4.主要操作函数 ...原创 2018-09-04 09:49:03 · 678 阅读 · 0 评论 -
Linux 线程-互斥锁(一)
1.互斥锁概念: 在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。 2.常用函数 互斥锁参数类型 -- pthread_mutex_t mutex 互斥锁初始化 -- pthread_mutex_init 表头文件 #inclu...原创 2018-08-22 10:47:27 · 2359 阅读 · 1 评论 -
Linux 多线程
1.创建线程 -- pthread 表头文件 #include <pthread.h> 定义函数 int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); 函数说明 ...原创 2018-08-16 11:29:02 · 175 阅读 · 0 评论 -
Linux 进程控制(三)
3.exec函数族 1)exec函数族 让父子进程执行不相干的操作 能够替换进程地址空间中的源代码.txt段 #include<unistd.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include <iostream> using na...原创 2018-08-13 11:03:20 · 123 阅读 · 0 评论 -
c/c++ 静态库与动态库
链接库 二进制文件 将源码转换成二进制格式的源代码 加密 使用 头文件 制作出的库 静态库 命名规则:libtest.a lib xxx -库的名字 .a 制作步骤: 源代码.c.cpp 将.c文件生成.o gcc a.c b.c -c 将.o打包 ar rcs静态库名 *.o ar rcs libtest.a a.o b.o ...原创 2018-08-08 15:07:24 · 117 阅读 · 0 评论 -
gcc 常用参数
gcc工作流程 预处理 -E(宏替换,头文件展开,注释去掉,xxx.c -> xxx.i) 编译 -S (xxx.i>xxx.s 汇编文件) 汇编 -c (xxx.s->xxx.o 二进制文件) 链接 (xxx.o->xxx (可执行)) gcc常用参数 -v/-version 查询版本号。 -I 编译时指定头文...原创 2018-08-08 13:53:28 · 118 阅读 · 0 评论 -
Linux 进程间通信(二)
4.mmap-创建内存映射区 作用:将磁盘文件的数据映射到内存,用户通过修改内存就能 修改磁盘文件 表头文件 #include <unistd.h> #include <sys/mman.h> 定义函数 void *mmap(void *start , size_t length , int prot , int fl...原创 2018-08-14 14:02:24 · 117 阅读 · 0 评论 -
Linux 进程控制(二)
2.进程控制 1)进程控制 fork 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有...原创 2018-08-13 09:15:53 · 129 阅读 · 0 评论 -
Linux 进程间通信(一)
1.IPC 进程间通信 interProcess Communication 2.管道(匿名) 1)管道的概念 本质:内核缓冲区 伪文件:不占用磁盘空间 特点 两部分: 读端,写端,对应两个文件描述符 数据写端流入,读端流出 操作管道的进程被销毁之后,管道自动被释放 管道默认是阻塞的 读写 2)管道的原理 内部实现方式:队...原创 2018-08-14 09:00:03 · 162 阅读 · 0 评论 -
Linux 进程控制(一)
1.进程相关概念 1)程序和进程 程序:二进制文件,占用的磁盘空间 进程:启动的程序 所有的数据都在内存中 需要占用更多的系统资源 cpu,物理内存 2)并行和并发 计算机操作系统对于并发性和并行性的概念给出的定义是: 并行性是指两个或多个事件在同一时刻发生; 并发性是指两个或多个事件在同一时间段内发生。 Erlang 之父 Joe Armstrong 用一张5岁小...原创 2018-08-10 16:17:43 · 448 阅读 · 0 评论 -
Linux 文件I/O
1.open/close open 表头文件 #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> 定义函数 int open( const char * pathname, int flags); int open( con...原创 2018-08-10 13:18:50 · 139 阅读 · 0 评论 -
GDB调试
1.gcc a.c b.c c.c -o app -g -g:会保留函数名和变量名 2.启动gdb gdb 可执行程序的名字 gdb app 给程序传参:set args xxx xxx 3.查看代码 --list 当前文件: l l 行号 l 函数名 非当前文件: l 文件名:行号 l 文件名:函数名 设置显示的行数: se...原创 2018-08-09 15:21:26 · 111 阅读 · 0 评论 -
Linux 线程-条件变量
#include <cstdio> #include<pthread.h> #include <iostream> #include<unistd.h> #include<string.h> using namespace std; //节点结构 typedef struct node { int data; stru...原创 2018-09-04 09:49:46 · 142 阅读 · 0 评论