- 博客(15)
- 资源 (7)
- 收藏
- 关注
原创 Linux在mmap虚拟内存并不分配物理页,读写时才分配物理页
编译链接 gcc -O0 -Wall paging.c -o paging.elf。源代码保存为 paging.c。运行 ./paging.elf。
2025-03-07 12:17:02
159
原创 inotify监控文件或者文件夹内的多个文件是否被修改
创建1个inotify实例,创建abc.txt和xyz文件夹,在xyz目录下创建1.txt ~ 5.txt五个文件,abc.txt和xyz被inotify监控,记事本打开abc.txt 1.txt ~5.txt共6个文件任意编辑文件并ctl+s保存,程序均有提示表示*.txt被修改。记事本打开abc.txt 1.txt 2.txt 3.txt 4.txt 5.txt任意编辑(删减增加)内容,ctl+s保存,inotify.elf均能捕捉到修改事件。./inotify.elf运行程序。
2025-03-06 17:06:38
190
原创 TCP server和client用gdb单步调试观察3次握手和4次挥手
server.elf和client.elf逐次单步调试socket, bind, listen, accept connect send recv函数期间,重复lsof可监控到server和client之间establish连接。tcpdump可抓取到三次握手的过程,期间如果server.elf运行到断点bind, client运行到connect会提示refused connection.此时如果继续运行server.elf到accept断点,三次握手报文可被抓取。server.elf的gdb调试。
2025-02-26 16:04:10
308
原创 UDP堵塞和非堵塞gdb逐步调试观察socket的创建
fcntl函数定义非堵塞方案,非堵塞方案中,如果接收缓冲区为空(终止server运行即可让client的接收缓冲区迅速为空),会报错提醒。strace ./xxx.elf监控syscall,如果只运行server.elf 能看到堵塞现象如图。1. server端采取缺省堵塞式,接收缓存区为空时,函数recvfrom堵塞。此时启动client.elf 堵塞撤销,因为有client持续发送UDP报文。gcc -Wall -O3 xxx.c -o xxx.elf编译链接。./xxx.elf运行。
2025-02-25 16:15:53
305
原创 基本汇编封装函数C调用函数
1.声明全局函数符号.global用于编译器链接;2.向量寄存器xmm存储float和double;3.数据类型转换汇编指令cvttsd2siq cvtsi2ss cvtsi2sdq movsd cvtss2sd
2025-01-21 15:29:58
92
原创 线程或者进程同步semaphore
semaphore实现生产者和消费者线程同步。semaphore亦可实现不同进程之间的同步,用sem_open创建或打开sempphorego共享变量Linux将其存放在/dev/shm/目录。
2024-11-28 13:21:03
221
原创 最简版线程池
最精简版线程池实例,轻松搞定线程池的框架逻辑。DebianLinux上运行,需要安装gcc编译器:sudoaptinstallgcc如果用make编译策略,需要安装make:sudoaptinstallmake该实例有改进,颜色和位置随机化处理,比较生动,请体验。
2024-11-28 12:53:58
235
原创 百度面试五只蚂蚁
#include#include#includeusingnamespacestd;#include#includeclassAntParam{public:boolDirection;//行走方向intPosition;//位置};constintPos[5]={3,7,11,17,23};intmain(){intEveryTime[
2010-01-24 17:12:00
729
1
最新最精彩汉诺塔HanoiTower
2009-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人