C
wangdassye
!
展开
-
C语言的一些骚操作 ----------- (一)
1.逗号表达式 逗号用来连接两个表达式,并以右边的表达式的值为结果,逗号在所有运算符中先级最低。 int n = (1+2, 2*3,4-5); // n = -1 取右边最后一个结果 int n = 1+2,2*3,4-5; // n = 1+2 即 n = 3 2. && 和 || 短路与&&:左边表达式是false,右边就不执行,逻辑表达式值为fals...原创 2019-03-23 22:07:54 · 2471 阅读 · 0 评论 -
C语言 ---------回调函数
回调函数 定义:回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 int add(int a,int b){ return a+b; } int array_opt(int *arr...原创 2019-04-13 20:48:42 · 110 阅读 · 0 评论 -
交换类排序 -----------冒泡排序 / 选择排序 / 快速排序
文章目录冒泡排序简单选择排序快速排序 冒泡排序 思想:两两交换比较相邻的关键字,如果反序则交换,直到没有反序的记录为止。 //顺序表为L void BubbleSort(sqlist *L){ int flag = TRUE; for(int i=1; i<l->length && flag; ++i){ flag = FALSE: for(int j= ...原创 2019-04-18 21:57:48 · 107 阅读 · 0 评论 -
linux系统编程之信号的介绍
信号的介绍 信号介绍:内核产生,软件产生的中断,可能有延迟, 信号的特点:简单,不能带大量信息,满足特定条件发生 信号的机制:进程B发送给进程A,内核产生信号,内核处理 信号的产生(内核产生): • 按键产生 ctrl+c ctrl+z ctrl+\ • 调用函数 kill raise abort • 定时器alarm , setitimer • 命令产生 kill • 硬件异常 段错误,浮点错...原创 2019-05-19 20:26:45 · 147 阅读 · 0 评论 -
linux系统编程之进程信号的使用
前提介绍 信号捕捉特性: 1. 进程正常运行时,默认pcb中有一个信号屏蔽字,假定为*,它决定了进程自动屏蔽哪些信号,当注册了某个信号捕捉函数,捕捉到该信号以后,要调用该函数,而该函数有可能执行很长时间,在这期间所屏蔽的信号不由来指定,而是用sa_mask来指定,调完信号处理函数,再次恢复 2. xxx信号捕捉函数执行期间,xxx信号自动被屏蔽 3. 阻塞的常规信号不支持排队,产...原创 2019-05-19 22:40:57 · 190 阅读 · 0 评论 -
Linux系统编程之线程
线程介绍 轻量级的进程,一个进程可以拥有多个线程,默认情况下一个进程有一个线程。从内核里看进程和线程是一样的,都有各自不同的PCB,在Linux:线程是最小的执行单位,进程是最小分配资源的单位。 线程之间私有和共享的资源 私有:线程栈,寄存器,程序寄存器 共享:堆,地址空间,全局变量,静态变量 线程优缺点 优点: 1. 提高程序并发性 2. 开销小 3. 数据通信,共享数据...原创 2019-05-27 20:48:36 · 278 阅读 · 0 评论 -
IPC之管道(pipe)
IPC介绍 IPC:inter-process-communication linux通过内核提供的缓冲区通进行数据交换的机制,用户去区无法完成 IPC通信的方式: • pipe 管道 (有血缘关系通信)半双工通信 • fifo • mmap 文件映射(共享)IO --速度最快(在内存上开辟一块缓冲区,把文件映射到内存上,直接操作内存) • 本地socket 最稳定 • 信...原创 2019-05-24 11:01:36 · 221 阅读 · 0 评论 -
IPC之管道(fifo)
fifo 也叫有名管道:一种半双工的通信方式,它允许无亲缘关系进程间的通信 优点: •可以实现任意关系的进程间的通信 缺点: •长期存于系统中,使用不当容易出错 •缓冲区有限 相关函数 创建一个管道的伪文件 • 可以mkfifo xxx 也可以用函数 int mkfifo(const char *pathname, mode_t mode); • 内核会针对fifo文件开辟...原创 2019-05-24 11:15:06 · 189 阅读 · 0 评论 -
IPC之mmap共享映射区
mmap 共享内存(Shared Memory):映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问 优点: •无须复制,快捷,信息量大 缺点: •通信是通过将共享空间缓冲区直接附加到进程的虚拟地址空间中来实现的,因此进程间的读写操作的同步问题 •利用内存缓冲区直接交换信息,内存的实体存在于计算机中,只能同一个计算机系统中的诸多进程共享,不方便网络通信 ...原创 2019-05-24 11:25:27 · 305 阅读 · 0 评论