自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 网络编程之TCP编程

ipv4通信使用的结构体:struct sockaddr_in我们只需要直接定义结构体变量即可。

2025-06-04 22:07:59 175

原创 网络编程之网络基础

基础理论IP子网掩码端口号字节序网络基础模型传输协议socketTCPUDP广播组播抓包工具的使用协议头并发服务器Modbus协议HTTP协议HTML分析服务器源码、数据库一、认识网络网络:实现多设备通信。

2025-06-04 19:47:40 479

原创 进程IO之 Linux IO 模型

最常见,但效率低,不浪费CPU。

2025-05-29 19:22:49 593

原创 进程IO之 线程

线程是一个轻量级的进程为了提高系统的性能引入线程。线程和进程都参与统一调度。在同一个进程中可创建多个线程,共享进程资源。1.2进程和线程的区别相同点:都为OS提供了并发执行能力:线程是系统调度的最小单位,进程是资源分配的最小单位:同一进程创建的的多个线程共享这个进程的资源,而各个进程之间的地址空间相互独立:线程通信相对简单,只需要通过全局变量就可以实现,但要注意临界资源的访问问题;进程通信比较复杂,需要借助进程间的通信机制。

2025-05-28 20:51:56 526

原创 进程IO之 进程

程序:静态的,编译好的可执行文件,存放在磁盘中的指令和数据的集合进程:动态的,是程序的一次执行过程,是独立的可调度的任务。

2025-05-26 21:09:28 911

原创 进程IO之 库

使用他人的函数时,除了包含头文件还可以用库文件头文件函数声明结构体共用体枚举的定义宏定义重定义外部引用其他头文件。库:把一些常用的函数的目标文件打包在一起,提供相应的函数接口,便于程序员使用。本质上来说库是一种可执行代码的二进制形式文件。2. 库的分类静态库和动态库:本质区别是代码被载入的时刻不同2.1静态库程序编译时,会被复制到目标代码中,以.a结尾优点:程序运行时将不再需要该静态库,运行时无需加载库,运行速度更快,可移植性好。

2025-05-26 14:33:36 833

原创 进程IO之文件IO

posix中定义的一组用于输入输出的函数。

2025-05-25 09:30:55 597

原创 进程IO之 标准IO

重点:学会用函数,不要执着于函数实现底层逻辑标准I/O、文件I/O、库、linux的I/O模型进程之间通信:无名管道(pipe)、有名管道(fifo)、信号(signal)、共享内存(shared memory)消息队列(message queue)同步、互斥、条件变量。

2025-05-22 21:15:46 979

原创 数据结构基础

数据结构:数据的逻辑结构以及存储操作数据:不是单纯数字,类似于一个集合的概念数据元素(节点):是数据基本单位,由若干数据项组成数据项:数据最小单位,描述数据元素的有用信息例:数据:所有图书的信息数据元素:某一本书的信息数据项:编号、书名、作者 ....

2025-05-15 19:12:23 842

原创 分文件编程与make工具

make:工程管理器,管理较多文件make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量(只编译改动过的文件),同时,它通过读入Makefile文件文件的内容来执行大量的编译工作。Makefile 或 makefile 是 make读取的唯一配置文件。2.格式makefile文件中命令格式:目标文件:依赖文件命令注意:命令前的是Tab键使用make工具的命令:makemake命令执行时,他一次只会。

2025-05-12 18:24:31 949

原创 shell脚本编程

----> 获取的是上一条命令是否是正确的执行结果注意: 0:为真 非0:为假$$------->获取当前脚本的进程ID。

2025-05-09 19:45:31 672

原创 Linux命令(续)

了解不同操作系统的内核:查看系统版本命令:查看OS版本:lsb_release -a或者lsb_release -rcat/etc/issue --->查看存放OS版本信息的文件查看内核版本:uname -a 或者uname -rcat /proc/version ---->查看存放内核版本信息的文件。

2025-05-07 20:30:53 852

原创 C高级之存储类型、函数指针、指针函数

形参列表:指向函数的参数列表,只需保持与函数形参数据类型一致,因此可。本质是指针,指向的是函数,即指针中存储的是函数首地址。在Linux内核源码中,很多函数参数用的是函数指针。修饰全局变量,其作用域会被限制在。(对全局变量影响不大,主要是局部变量)的全局变量或函数(未被static修饰的)(对全局变量影响不大,主要是局部变量)修饰局部变量,其作用域保持不变,仍是。本质是函数,函数的返回值是地址(指针)同类型是指 返回值类型同,形参列表同。本质是数组,元素是同类型的函数指针。函数名:函数的首地址(函数入口)

2025-05-06 18:55:33 269

原创 C高级之共用体、枚举

union 共用体名 变量名;char c;return 0;1)共用体成员变量共用一块地址空间2)赋值顺序以最后一次赋值为准3)共用体大小为成员变量数据类型中最大的为准union valint a;char c;return 0;

2025-05-06 13:45:35 274

原创 C语言简单学生管理系统的实现

【代码】C语言简单学生管理系统的实现。

2025-05-06 09:00:03 103

原创 C高级之结构体

用户自定义的数据类型,结构体中可以包含若干相同或不同数据类型的成员变量,使这些数据项组合起来反映某种信息。struct 结构体名成员变量;struct 结构体名 变量名;int id;int age;//全局//局部return 0;struct 结构体名成员变量;} 变量名;int id;int age;}stu;//全局//局部return 0;注意: 此种方式无法在局部再去单独定义变量,只能在全局定义!!struct成员变量;} 变量名。

2025-05-06 07:57:09 633

原创 学习错题合集

错题

2025-04-28 17:26:32 124

原创 C语言基础之malloc/free和string家族

若开辟的空间过大,可能会导致开辟失败(此时会返回NULL),因此开辟空间后都要有一个是否开辟成功的判断。错过字符串定义时的直接赋值后,想要直接赋值,就得用strcpy()在free操作以后一定要将指针赋值NULL,避免其变成野指针!)比打印出来的要长,因为打印时遇到'\0'就认为字符串结束了。'\0'也会被复制过去,所以实际dest的长度(1.dest必须是可被修改的,不能是只读的。

2025-04-27 17:05:51 454

原创 C语言基础之函数

函数格式:数据类型 函数名(形参1,形参2)代码段return 常量值或变量或表达式#函数的返回值类型要与定义函数的数据类型保持一致#主函数的return标志着程序的结束。

2025-04-25 20:47:54 421

原创 C语言基础之指针(续)

constconst :被const修饰的变量会常量化,变成 read only(只读)const修饰指针指向的内容时(const在*前面),内容不可改,但可以修改指针指向const 修饰指针的指向时(const在*后面),指向不可改,但指向的内容可改帮助记忆:看const后面紧跟的是谁;是 * ,*是取内容的,则内容不能改;是 p ,p是变量的地址,则地址不能改即指针指向不能改。若都有:voidvoid:修饰指针或函数 (不能修饰普通变量!!

2025-04-24 19:19:24 734

原创 C语言基础之指针

注意:指针的数据类型必须与其存放的地址所对应的变量的数据类型保持一致。

2025-04-23 17:16:34 377

原创 排序算法(学习记录)

【代码】排序算法(学习记录)

2025-04-22 14:47:18 86

原创 C语言基础之数组

由一个或多个相同数据类型的值组成的集合。特点:数据类型相同;内存连续;存储类型数据类型数组名 [元素个数n]默认auto(省略)intarr[5]a[ i ] 只有在数组定义时,i 表示数组元素个数,其余任何时候都是下标的意思//例int arr[5];

2025-04-21 19:51:07 463 3

原创 C语言简单编程题合集(学习记录)

C语言基础题

2025-04-19 08:34:36 209

原创 C语言基础之变量与常量

注意:对于标识常量“单纯的替换”的运算,一定要注意括号()的有无。

2025-04-18 13:41:06 172

原创 Linux基础命令

一些最基础的Linux命令

2025-04-17 20:13:29 121

【软件开发工具】GDB调试工具常用指令详解:程序调试流程与核心功能介绍

内容概要:本文档详细介绍了GDB(GNU Debugger)这款强大的开源调试工具。GDB广泛应用于C、C++、Fortran等编程语言的调试,其主要功能包括设置断点(普通断点、观察断点、条件断点)、查看和修改变量值、回溯堆栈、内存监测、多线程调试以及远程调试。文档还阐述了调试步骤,首先需要在编译时添加-g参数以保留调试信息,然后启动GDB调试模式。此外,列举了常用的GDB命令,如break、run、continue、next、step、print、list等,并解释了info命令及其参数的使用方法,以帮助开发者获取程序执行状态的各种信息。 适合人群:适用于有一定编程基础,尤其是从事C、C++、Fortran等语言开发的程序员,无论是编程爱好者还是专业开发人员均可从中受益。 使用场景及目标:①在程序开发过程中遇到逻辑错误时,借助GDB进行调试;②通过设置不同类型断点(普通断点、观察断点、条件断点)精确定位问题;③利用info命令获取程序执行状态信息,如断点、变量、堆栈、寄存器、线程等;④进行内存监测,防止内存泄漏等问题;⑤支持多线程和远程调试,适应复杂环境下的程序调试需求。 阅读建议:由于GDB功能丰富且命令较多,在学习过程中建议结合实际代码进行实践操作,熟悉各命令的具体用法,逐步掌握GDB的调试技巧。同时,可以通过查阅文档中提供的示例加深理解。

2025-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除