
llinux c编程
lonely12a3a
这个作者很懒,什么都没留下…
展开
-
关于exit和_exit在vfork之后的研究
这段时间回过头看unix高级环境编程,感觉以前不理解的现在有了明显的提升。在第八章的第四节中提到vfork在调用exit之后父进程会导致printf输出出错返回1,做了一个实验,结果显示exit和_exit结果是一样的。除非在子进程中调用函数关闭输出流,才会导致printf返回-1.不是很理解,希望大牛能帮忙给个解答。实验环境为:CentOS release 6.8 (Final)内核版本原创 2017-12-15 14:10:17 · 275 阅读 · 1 评论 -
linux 原生aio API详解
如下:extern int io_setup(int maxevents, io_context_t *ctxp);extern int io_destroy(io_context_t ctx);extern int io_submit(io_context_t ctx, long nr, struct iocb *ios[]);extern int io_cancel(io_conte...原创 2018-12-09 22:53:40 · 1087 阅读 · 0 评论 -
Nginx-环境变量
今日看nginx源码,有个environ变量,在没有赋值的情况下就用了,翻遍源码也没看到是在哪儿负的值,于是想到可能是系统中的变量,或者宏或者函数。在系统头文件中找到有关于他的信息,但是还是没有找到他的本意,于是在网上搜索https://blog.youkuaiyun.com/tom601/article/details/70036701?utm_source=blogkpcl8 这篇文章说明了e...原创 2018-11-23 23:21:45 · 3660 阅读 · 0 评论 -
nginx-启动分析
目录 源码如下1.函数ngx_debug_init()函数在linux是未定的,什么事情都不做2.ngx_strerror_init()函数是用来初始化系统错误信息的3.ngx_get_options(argc, argv) 根据输入参数设置全局变量4.ngx_time_init()设置以下全局变量全是表示时间。5.ngx_regex_init()如果有正则表达式的库引...原创 2018-11-24 03:17:41 · 290 阅读 · 0 评论 -
epoll编程
实例编程后续完善各种问题处理,以及定时处理等等:myepoll.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/epoll.h>#include <netinet/in.h>#include <sys/socket.h&...原创 2018-10-17 00:01:52 · 262 阅读 · 0 评论 -
外部排序-2路平衡归并-k路平衡算法和败者树
思路:开辟出三个缓存区,两个用于输入数据,一个用于归并后的输出缓存。两个缓存正好可用于内部2路归并排序。输出缓存满了之后,则输出到外部文件中。直到两个输入缓存中的数据一方为空时,再从外部读入数据,继续进行2路归并排序,如此循环直到外部文件排序完成为止。它与内部排序法中的二路归并算法的区别就是有个从外部获取数据和把数据输出到外部的步骤,仅此而已。k路平衡:最简单的就是直接把上面的两个输入...原创 2018-10-09 00:19:23 · 1528 阅读 · 0 评论 -
基数排序
说到基数排序就需要谈到,多排码排序,多排码排序就是,有n个记录,每个记录都是由x个元素构成属性key,并且有其他的属性key2。那么就可以按照他的属性的key2优先级排序,然后再按照他的属性key排序或者反过来都行。他的关键点是:有多个属性(key1.....keyn)。基数排序的关键点就是:基数 排序 是 利用“ 分配” 和“ 收集” 两种 操作 对 单 排序 码 进行 排序 的 一种内...原创 2018-10-09 00:06:38 · 123 阅读 · 0 评论 -
排序学习-快速排序
快速排序的思想:快速排序(quicksort)又称划分交换排序。它是在1962年由C.A.Hoare提出来的,是一种平均性能非常好的排序方法。其基本思想是:在待排序文件的n个记录中任取一个记录(例如就取第一个记录)作为基准,将其余的记录分成两组,第一组中所有记录的排序码都小于或等于基准记录的排序码;第二组中所有记录的排序码都大于或等于基准记录的排序码,基准记录则排在这两组的中间(这也是该记...原创 2018-10-08 02:27:49 · 112 阅读 · 0 评论 -
归并排序-源码
读周颜军; 王玉茹; 关伟洲. 数据结构 (21世纪高等教育计算机规划教材) (p. 216). 人民邮电出版社. 此书源码也是摘自此书归并 排序( merge sort) 是 又一 类 不同 的 排序 方法。 归并 排序 的 基本 思想: 将 已 有序 的 子 文件 进行 合并, 得到 完全 有序 的 文件。 合并 时 只要 比较 各 有序 子 文件 的 第一个 记录 的 排序 码, ...原创 2018-10-08 00:16:00 · 262 阅读 · 0 评论 -
排序法-堆排序
要理解堆排序需要理解一下概念:二叉树:树中每个节点至多有两个子节点二叉搜索树:对于树中任何节点,如果其左子节点不为空,那么该节点的value值永远 >= 其左子节点;如果其右子节点不为空,那么该节点的value值永远 <= 其右子节点满二叉树:树中除了叶子节点,每个节点都有两个子节点完全二叉树:在满足满二叉树的性质后,最后一层的叶子节点均需在最左边完美二叉树:满足完...原创 2018-09-09 20:54:58 · 197 阅读 · 0 评论 -
选择排序—简单选择排序
基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。#include <stdio.h>void print(int *iarry,int n,int i);int gnum=0;void simple...原创 2018-08-29 21:05:52 · 222 阅读 · 0 评论 -
排序法学习1-直插排序-希尔排序
1 排序思想① 先取一个正整数d1(d1<n)作为第一个增量,将全部n个记录分成d1组,把所有相隔d1的记录放在一组中,即对于每个k(k=1, 2, … d1),R[k], R[d1+k], R[2d1+k] , …分在同一组中,在各组内进行直接插入排序。这样一次分组和排序过程称为一趟希尔排序;② 取新的增量d2<d1,重复①的分组和排序操作;直至所取的增量di=1...原创 2018-08-29 19:52:00 · 251 阅读 · 0 评论 -
排序法学习1
本部分内容参考了:https://www.cnblogs.com/chenglc/p/7880029.html 摘抄的源码做了一下修改排序法按照存储分为:内部排序法,外部排序法。内部排序法分为:插入排序法,选择排序法,交换排序法,归并排序法,基数排序法。插入排序法分为:直接插入排序法,希尔排序法选择排序法分为:简答排序法和堆排序法交换排序法分为:冒泡排序法和快速排序法。...原创 2018-08-25 13:36:43 · 155 阅读 · 0 评论 -
linux下关于除数为0的信号为总结
今天在处理除数为0的时候的信号问题,发现了一个问题,暂时没有找到答案.现象一:代码如下:#include <stdio.h>#include <signal.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcn...原创 2018-01-10 16:53:15 · 1279 阅读 · 0 评论 -
广播地址结算方法
IP:192.168.1.211子网掩码:255.255.255.240翻译成二进制:IP:11000000 10101000 00000001 11010011子网掩码: 11111111 11111111 11111111 1111 0000 根据子网源码推算 IP的网络ID为 :前28位,主机id为后四位也就是子网掩码与任...原创 2019-07-21 08:54:42 · 538 阅读 · 0 评论