- 博客(28)
- 收藏
- 关注
原创 linux, pthread_create
1.1.分离后,sessions_update_thread如果太快结束,pthread_create来不及返回tid,那么有可能会失败;1.2.sessions_update_thread在类中必须带static,否则会报错;
2023-09-20 09:08:00 61
原创 ifstream is_open,读文件时,若文件不存在,不会默认创建文件
【代码】ifstream is_open,读文件时,若文件不存在,不会默认创建文件。
2023-09-06 10:54:44 389
原创 linux, pipe
父进程关闭read,fd[0], can write, children close write, fd[1], can read;1.子进程,共享父进程打开的文件;
2023-07-04 17:53:51 81
原创 git, how to use git
自己从原仓库yyy, fork了一个自己的仓库xxx;现在把自己的本地master_***分支关联到yyy;
2023-06-20 09:56:54 75
原创 程序员学习,有用的工具,网站
1.编译器compilers,汇编, Compiler Explorer:https://godbolt.org/2.
2022-05-31 18:33:58 53
原创 arm, core dump原理
1._initialize_arm_linux_tdep-->arm_linux_init_abi-->arm_linux_regset_from_core_section_initialize_armobsd_tdep-->armobsd_init_abi-->armbsd_regset_from_core_sectionstrcmp (sect_name, ".reg"), (strcmp (sect_name, ".reg2")都需要这两个段GDB读取内核转
2022-05-29 19:51:59 217
原创 中断和异常
1.硬件:1.1.可编程中断控制器(PIC - Programmable Interrupt Controller)是微机系统中管理设备中断请求的管理者。
2022-05-29 19:51:30 35
原创 linux,x86,启动
1.为何一开始不把system模块直接移动到,0地址处?因为boot程序加载操作需要使用 ROM BIOS 提供的中断过程,而 BIOS 使用的中断向量表正处于内存 0 开始的地方,并且在内存 1KB 开始处是 BIOS 程序使用的数据区,所以若直接把 head 代码加载到内存 0 处将使得 BIOS中断过程不能正常运行。...
2022-05-29 19:50:53 39
原创 补码,有符号数,无符号数,C语言
1.补码的定义:1.1.正数的补码是其本身;1.2.负数的补码是符号位不变,其余位按位取反 ,再加1;1.3.补码的补码还是自身;即对补码再做一次补码运算,得到原码。2.计算机中存储数据是以补码的形式; 1 #include <stdio.h> 2 3 int main(int argc, char *argv[]) 4 { 5 int i = -1; 6 char tmp1 = 0b01010101;//
2022-05-29 14:37:52 698 1
原创 C语言学习
1.未初始化的指针,未初始化的变量;1.1.结构体里的指针如果没有指向一个合法的地址,导致出错;struct student { char *name; int score;} stu, *pstu;初始化结构体:memset(&stu, 0, sizeof(student));把这个结构体里的指针初始化为NULL;1.2.不确定变量值时,就把初始化为0或NULL:int i = 0;char *p = NULL;...
2022-05-22 20:23:46 631
原创 windows cmd 常用命令
设置DHCP自动获取IP, 以管理员权限运行cmd:netsh interface ip set address name="以太网" source=dhcp //"以太网"为网卡名,对应替换;//ipconfig可以查看网卡名设置固定IP, 以管理员权限运行cmd:netsh interface ip set address name="以太网" source=static addr=192.168.1.3 mask=255.255.255.0 gateway=192.168.1.
2022-05-20 18:08:58 418
原创 linux内核调试+qemu+gdb+vscode, 环境搭建
一,1.x86_64, 20.04.1-Ubuntu2.$ sudo apt update$ sudo apt install build-essential$ sudo apt install gcc-multilib$ sudo apt install git参考:运行及调试Linux内核的方法_SuperSuperZ的博客-CSDN博客
2022-05-16 12:23:40 1118
原创 arm, 任务调度,上下文切换,硬件软件
1.对于ARM架构,主要3部分:CPU,RAM,FLASH;如何保存恢复寄存器,保存恢复堆栈;TCB任务控制块,保存进程下上文;
2022-05-14 10:51:02 274
原创 linux-x86-内存管理-进程调度-任务切换(持续更新)
1.硬件1.2.堆栈切换当特权级 3 的程序在执行时,特权级 3 的堆栈的段选择符和栈指针会被分别存放在 SS 和 ESP 中,并且在发生堆栈切换时被保存在被调用过程的堆栈上。特权级 0、1 和 2 的堆栈的初始指针值都存放在当前运行任务的 TSS 段中。2.软件........................
2022-05-14 09:55:02 410
原创 ARM gic v2
1.The Distributor1.1.对于分发器, 0-31号中断是'banked'.(相关描述最好感受原文ARM®Generic Interrupt Controller Architecture version 2.0)Interrupt numbers ID0-ID31 are used for interrupts that are private to a CPU interface. These interrupts are banked in the Distributor. A
2022-05-13 19:35:53 146
原创 用gdb调试C程序
1.在生成目标文件是加"-g"参数,如下图line15;2.在shell中输入:gdb ./xxxmakefile文件中,若只在line5中加"-g"参数,启动gdb的时候,就会提示:(No debugging symbols found in ./xxx)3.常用调试命令:run;list num;......
2022-05-13 11:06:03 951
原创 linux 常用命令
1.net//关闭ipv6# echo "net.ipv6.conf.eth0.disable_ipv6 = 1" >> /etc/sysctl.conf# sysctl -p
2022-05-12 13:49:36 133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人