2021年12月16日

摘要: 1. select 相关man 资料 /* According to POSIX.1-2001 */ #include <sys/select.h> /* According to earlier standards */ #include <sys/time.h> #include <sys/ty 阅读全文
posted @ 2021-12-16 10:50 real-watson 阅读(466) 评论(0) 推荐(0) 编辑
 

2021年12月10日

摘要: 1. 尝试strace 或 jstack 去追踪程序,发现某一个进程作为socket连接server出现如下的log(strace追踪): 1. ioctl(45,[0],0) = 0 2. ........ 3. ioctl(45,[12],0) = 12 ioctl作为用户态和内核态的数据交互, 阅读全文
posted @ 2021-12-10 14:18 real-watson 阅读(642) 评论(0) 推荐(0) 编辑
 

2021年12月8日

摘要: 1. 环境: ubuntu 系统 + strace + vim 2.编写挂死程序:(参考博客) #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <string.h> int main(int argc, c 阅读全文
posted @ 2021-12-08 16:37 real-watson 阅读(149) 评论(0) 推荐(0) 编辑
 

2021年11月29日

摘要: 地铁优惠公式(随地转圈): 假设40次地铁次数,原价最低2元,设行程单价为p元。 问题:求p为多少时没有任何优惠。 int original_total_price(unsigned char cnt, unsigned int pirce) { int total; total = (cnt - 阅读全文
posted @ 2021-11-29 16:58 real-watson 阅读(113) 评论(0) 推荐(0) 编辑
 
摘要: 理解阻塞和非阻塞概念: eg: open->read->close eg: open->while(read)->close read -> data received/receiving spin lock:(from baidu) 是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线 阅读全文
posted @ 2021-11-29 16:45 real-watson 阅读(68) 评论(0) 推荐(0) 编辑
 

2021年4月24日

摘要: app.c 和 main.c 之间,在main.c中调用app.c的static变量和函数,需要利用一个结构体结合指针通过传地址的方式间接访问。 app main struct { int , func()}作为一种通道或载体 直接上一个代码: /*main.c*/ #include "common 阅读全文
posted @ 2021-04-24 23:43 real-watson 阅读(1044) 评论(0) 推荐(0) 编辑
 

2021年4月17日

摘要: 提供一份测试demo: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <sys/fil 阅读全文
posted @ 2021-04-17 21:37 real-watson 阅读(170) 评论(0) 推荐(0) 编辑
 
摘要: 直接提供一份文件锁的demo: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> /*check lock 阅读全文
posted @ 2021-04-17 11:09 real-watson 阅读(192) 评论(0) 推荐(0) 编辑
 

2021年4月16日

摘要: 先看一段代码: int find_value(int fd) { int ret; char buff[8] = ""; struct timeval st,ed; long long delta; gettimeofday(&st,NULL); ret = read(fd,buff,sizeof( 阅读全文
posted @ 2021-04-16 22:44 real-watson 阅读(72) 评论(0) 推荐(0) 编辑
 

2021年4月2日

摘要: 以B作为删除的节点,代码思路如下: { line *temp = head; while(temp) { if (temp.data == date) { //B as temp temp->next->prev = temp->prev; //M1 temp->prev->next = temp- 阅读全文
posted @ 2021-04-02 13:48 real-watson 阅读(1222) 评论(0) 推荐(0) 编辑