主页

Linux下io多路复用api系统调用实例总结

写在前面 select: 选择 用途: 在一段指定时间内, 监听用户感兴趣的文件描述符上的可读可写和异常事件. #include <sys/select.h> int select(int nfds, fd_set* readfds, fd_set* write_fds, fd_set* exceptfds, struct timeval* timeout); poll: 轮询 select和poll的缺点 epoll: 基于事件的轮询 水平触发和边缘触发 水平触发通知(LT, Level Trigger): 如果文件描述符上可以非阻塞地执行I/O系统调用, 此时认为它已经就绪. 边缘触发通知(ET, Edge Trigger): ...

阅读更多

C++中i=i+1,i+=1,i++,++i的区别(从汇编层面分析)

写在前面 在线编译工具链与反汇编工具: https://godbolt.org/; 使用的编译器: x86_64-clang16.0. 内置类型 i = i + 1 int main() { int i = 0; i = i + 1; } 对应的汇编代码: mov dword ptr [rbp - 4], 0 ;; i = 0 ;;-------------- i = i + 1; ------------------- mov dword ptr [rbp - 8], 0 ;; new_i = 0 mov eax, dword ptr [rbp - 8] ;...

阅读更多

Linux内存映射,共享内存与虚拟内存部分系统调用示例总结

写在前面 写一下内存映射/虚拟内存方面的内容总结, 主要参考了Linux/Unix系统编程手册. 内存映射可以用于进程间通信(IPC)和其他很多方面. 内存映射 mmap() 系统调用, 在调用进程的虚拟地址空间中创建一个新的内存映射. 分类 文件映射: 将一个文件的一部分直接映射到调用进程的虚拟内存中. 一旦一个文件被映射之后, 就可以通过在相应的内存区域中操作字节来访问文件内容了. 映射的分页会在需要的时候从文件中加载(也被称为基于文件的映射或者内存映射文件). 匿名映射: 没有对应的文件, 这种映射的分页会被初始化为0. 发生文件映射共享的情况 两个进程映射了一个文件的同一个区域, 此时这两个进程会共享物理内存的相同分页 通...

阅读更多

双向环形链表的增删改查c++完整实现

写在前面 最后写一下双向循环链表吧, 跟前面的没啥太大区别, 注意取余操作以及循环跳出的条件. 代码: GitHub; 节点类-链表类 节点类 和双向链表一模一样. class ListNode { public: int val; ListNode* prev; // 前驱结点 ListNode* next; // 后继结点 ListNode() : ListNode(0, nullptr, nullptr) {} ListNode(int x) : ListNode(x, nullptr, nullptr) {} ListNode(int x, ListNode* _next) : ListNode(x,...

阅读更多

牛客网acm模式输入输出11道题目的c++解答(c标准io版)

写在前面 之前写过关于牛客网的输入输出的题目, 但是是用C++的标准IO写的, 虽然方便, 但是据说速度会很慢, 这里还是再用C重写一遍, 主要用到了scanf和printf. 地址: 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com); 不列出题目了, 直接看链接即可. 11道题的题解 1 #include <cstdio> using namespace std; int main(void) { int a, b; while (~scanf("%d %d", &a, &b)) printf("%d\n", a + b); return...

阅读更多

单向环形链表的增删改查c++完整实现

写在前面 刚写了双向链表的, 趁热打铁再来一个环形链表的, 这次就有点复杂了, 但是还是可以接受的. 实现环形链表的关键就是不能通过判断是否遍历到空节点来结束循环, 这会导致死循环. 只能用指针是否遍历回到头结点来判断. (就是说第二次来到头结点) 还有就是取余操作的应用, 一般来说, 给定下标需要判断下表是否在链表的节点长度范围内, 但是环形链表有所不同, 任何一个整数都可以作为下标(空节点的环形链表除外). 完整代码见: GitHub; 取余操作的一个坑 先来看一段Python代码: (ipython) In [1]: 10%3 Out[1]: 1 In [2]: -10%3 Out[2]: 2 没什么问题, 再来到C这边: #include ...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits