Linux
文章平均质量分 83
侠客行-
这个作者很懒,什么都没留下…
展开
-
Linux下对json文件进行查看-jq
Linux下对json文件进行查看-jqjq是一个查看和解析json文件的linux命令工具,centos直接yum install -y jq ,查看字段可用简单的jsonpath去访问;本文测试数据:{ "name":"John", "age":30, "car":null,"phone":["1"] }{ "name":"zhang", "age":30, "car":null,"behavior":[{"say":"hello"},{"eat":"rice"}] }常用方法:.原创 2021-03-27 17:40:51 · 7792 阅读 · 0 评论 -
Gcc的初级使用
一. Gcc的基本命令Gcc是linux环境下的编译器,也是linux c程序的编译命令,下面实例它的一些应用:gcc file.c会在当前目录下生成一个a.out文件,也就是file.c文件对应的可执行文件,这个命名是默认的。gcc –o finalfile sourcefile1.c,sourcefile2.c,sourcefile3.c,,,将后面的若干源代码文件编译链接生成可执行的fina...原创 2018-03-13 14:45:00 · 322 阅读 · 0 评论 -
IO复用之select
seletc,poll和epoll都是io复用复用的接口。I/O复用解决什么问题?I/O复用就是通过一种方法可以同时监听多个描述符的状态,一旦有描述符就绪就通过相应的接口返回通知用户程序进行相应的读写操作。同时你或许注意到它们都是同步的I/O监听。原因在于它们在外部读写事件就绪后自己负责控制读写,进一步说便是在此过程是堵塞的,有数据才读,没数据就等待。然而异步的Io就不需要自己就行读写的控制...原创 2018-04-19 23:52:42 · 324 阅读 · 0 评论 -
IO调用之poll
为了解决select的监听描述符最大值(1024个)的限制问题,和事件和描述符分开的问题,引入了poll。poll将描述符和要注册的事件和实际发生的事件进行封装pollfd函数原型: #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);pollfd就是封装体。struct...原创 2018-04-20 01:35:19 · 325 阅读 · 0 评论 -
epoll (effictive poll)高效率的poll
epoll与poll和select在使用过程中有很大区别,(1)epoll使用一组函数来来完成任务。它们分别是epoll_create(),epoll_clt和epoll_wait(),(2)再有epoll使用事件表来记录用户关心的描述符上的事件,由此不需要像select和poll一样把描述符集合(fd_set)和事件集(pollfd)在每次调用都要传入内核中,但是epoll需要额外维护一个内核时...原创 2018-04-20 15:47:05 · 476 阅读 · 0 评论 -
select,poll,epoll对比
(1)在使用数据集合上,select将数据集分为读集,写集,和异常集poll对select进行了封装,将事件和描述符绑定在结构体中pollfd中epoll在poll将描述符和事件封装的基础上,将事件集做了进一步的抽象--》epoll内核事件表,事件表将用户关系的描述符放入表中(2)在对于事件和描述符的处理上,select和poll每次监听结束后,都要将就绪的描述符更新到对应的数组中,最麻烦在于它们...原创 2018-04-20 16:54:22 · 137 阅读 · 0 评论 -
使用pagemap来检验fork的写时复制
首先我们先要了解以下了解以下几种地址物理地址:是真实存在的RAM的具体存储单元地址逻辑地址:由于x86自80838以来出现的分段内存管理方式,操作系统将内存分为若干个段,各个段的起始地址(段基址)由CS,DS,SS,ES,我们平时的程序对变量取的地址叫作段内偏移地址,也就是逻辑地址。线性地址:线性地址的组成为段基址<<4+逻辑地址(一般情况),线性地址就是存在于虚拟地址空间上的地址,又...原创 2018-05-12 19:48:32 · 3239 阅读 · 1 评论 -
一些基本问题:大小端,网络字节序,socket编程函数的注意点,gdb和coredump调试
1,什么是大小端?大小端是指数据在内存的的存放顺序,现代计算机一次能够加载32bit或者64bit的数据或者指令,因而数据的存放顺序影响它被装载到整数的值。以小端来讲:低地址存数据的低位,高地址存数据的高;而大端敲好反过来:高地址存低位,地址存高位。2.测试大小端测试大小端最常用的方法是使用一个联合体,定义成员为一个short和char然后给short类型变量赋值为1,看char变量是否也是1,如...原创 2018-06-14 12:28:08 · 1002 阅读 · 0 评论