使用UNIX域Socket传递文件描述符 [使用UNIX域Socket传递文件描述符] 使用sendmsg(),recvmsg() fork后子进程继承父进程进程表象的描述符表(所有描述符项目),所以子进程和父进程相同的fd都共享了相同文件表象. 不同进程打开相同路径文件的情况: 操作文件的i节点是相同的,但是在内核文件表中维护了2个不同的文件表象(2个独立的进程), 2个进程间传递fd的目的就是使2个进程的fd共享一个相同 2020-11-18 网络与服务 > 网络编程
I/O复用3个小实例+将signal转化为IO事件 I/O复用3个小实例: nonblock connect():利用error:EINPROGRESS 非阻塞connect() man手册connect() The socket is nonblocking and the connection cannot be completed immediately. (UNIX domain sockets failed with EAG 2020-11-08 网络与服务 > 网络编程 #socket
有限状态机实例:服务端实现简单的HTTP请求的读取和分析 有限状态机实例:服务端实现HTTP请求的读取和分析 TCP/IP在包的头部给出头部的长度字段,但HTTP协议未提供头部长度字段,(头部长度变化大),头部结束时遇到空行,\r\n 如果一次读操作没有读入HTTP请求的整个头部,即没有遇到空行,需要等待第二次读入, 在每一次完成读操作,要分析新读入的数据是否有空行,(\r\n前面有请求头和头部字段),,所以在寻找\r\n的过程中可以顺便解析 2020-10-30 网络与服务 > 网络编程
sql必知必会知识点总结(长 sql学习1.SELECT 检索单个列SELECT prod_name FROM Products; 返回未排序数据 返回所有行,没有过滤 检索多个列,列名之间加上,就行,SELECT prod_id,prod_name FROM Products; 检索所有列,SELECT * FROM Products;,可以看到自己不知道名字的列 2. 排序检索数据 排序数据: SELECT prod 2020-10-09 网络与服务 > 数据库
IPv4协议详解 IPv4 为上层协议提供无连接,无状态,不可靠的服务 无状态:IP通信双方不同步传输数据的状态信息,所以IP数据报的发送,传输和接收都是相互独立的,没有上下文关系 (IP模块无法处理IP数据报的乱序和重复,IP模块只要接收到完整的IP数据报就会发给上层协议模块) 无连接:IP通信双方都不长久的维持对方任何信息,(所以每次发送数据都要指出对方IP地址) 不可靠: IP协议不能保证IP数据报准确地到 2020-10-04 网络与服务 > 计算机网络 #网络协议
Win下控制台简单贪吃蛇实现 贪吃蛇 ???算是对大一课设的交代>>>,代码抄过来的 vs2020下编译,仅使用Sleep()和system(“cls”),_kbhit(),等几个win api 结构: —— main.c global.c global.h 主要思路:2维数组每个点分别存墙(1),空地(0),蛇身体(2),食物点(3).然后遍历2维数组printf绘图 蛇身体长度通过int* body[] 2020-10-01 编程语言 > C与C++
arp协议工作原理 测试网络:+————————+ +————————-+| 主机A | |主机B || IP:192.168.247.141 | |IP:192.168.247.142 || MAC:00:0c:29:28:30:33 | |MAC:00:0c:29:ae:83:e0 |+———-+————-+ +———-+————–+ | | | +—————-+——————+ | 网关IP:192.168.24 2020-09-29 网络与服务 > 计算机网络
linux下在进程中加载执行纯2进制可执行文件bin 此博客来自他人,下面是自己的见解,因为正好用到相关内容 objdump对纯2进制文件(hello.bin)反汇编 objdump -m i386 -b binary -D hello.bin -m:指出反汇编目标架构 -b:文件格式 在进程中加载执行纯2进制可执行文件bin mmap把2进制文件映射到进程用户内存空间, 将程序控制权交给bin linux下用汇编通过中断调用api打印一个h 2020-09-19 系统与底层 > Unix系统编程
c语言提取tar包内容 tar文件:以一定方式将多个文件合并成tar文件,不对文件进行压缩,tar文件格式 很 简单,每个文件前面+512字节的header,并且将所有文件叠放在一起 header1–file1–header2–file2–header3–file3 解包就是读取文件头得到文件大小,然后读取出文件就行了 提取tar文件并存储12345678910111213141516171819202122232425 2020-09-18 编程语言 > C与C++
Orange‘s chapter10缺少的elf.h文件定义 Orange’s操作系统源码chapter 10,缺少的elf.h文件以及get_kernel_map()函数 elf.h只用到elf_header和section_header,以及魔数 (写出部分定义就可以,剩下的没用) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 2020-09-15 系统与底层 > 自制操作系统