自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重头开始嵌入式第二十九天(Linux系统编程 网络通信 tcp)

2. 服务器:接收客户端的请求,并进行相应的处理,然后将结果返回给客户端。服务器可以是 Web 服务器、应用服务器等,负责存储数据、处理业务逻辑等。2. 服务器:通常是高性能的计算机系统,负责存储和管理数据、处理客户端的请求,并将结果返回给客户端。1. 去中心化:P2P 网络中没有中心服务器,各个节点之间直接进行通信和资源共享,每个节点既是资源的提供者,又是资源的使用者。localaddr.sin_addr.s_addr= inet_addr("192.168.1.100") ///本机ip。

2024-08-28 19:55:47 1014

原创 重头开始嵌入式第二十八天(Linux系统编程 网络通信 套接字)

举例:TCP是面向连接的协议,在传输数据前要先建立连接,通过三次握手建立连接,通讯完成时要拆除连接,可提供可靠的数据流服务,采用“带重传的肯定确认”技术实现传输的可靠性,还通过“滑动窗口”方式进行流量控制,如在文件传输、电子邮件发送等场景中,需要保证数据的准确无误传输,通常会使用TCP协议;SMTP(简单邮件传输协议),用于发送电子邮件;- 举例:两台电脑通过网卡进行数据的发送和接收,每个网卡都有一个独特的地址即MAC地址,以太网数据以帧为单位,包括标头和数据部分,以太网在子网内以广播的形式发送数据。

2024-08-27 17:20:41 797

原创 重头开始嵌入式第二十七天(Linux系统编程 信号通信)

1、必须事先定义自定义函数,必须是如下格式:void fun(int sig) ////sig 接收到的信息编号。

2024-08-26 21:16:26 891

原创 重头开始嵌入式第二十六天(Linux系统编程 进程间通信 IPC)

2. 只能在具有亲缘关系(如父子进程)的进程间使用:通常是父进程创建管道,然后创建子进程,子进程会继承父进程的文件描述符,从而实现通过管道通信。4. 管道的容量有限:通常是一个有限的缓冲区大小,如果写入的数据超过了缓冲区的容量,写进程会被阻塞,直到读进程读取数据腾出空间。无名管道只能在具有亲缘关系的进程间使用,而有名管道可在无亲缘关系的进程间通信。进程间通信在多进程和多线程编程中起着至关重要的作用,使得不同的进程能够协同工作,完成复杂的任务。6. 生命周期随进程:如果参与通信的进程结束,管道也会被销毁。

2024-08-23 18:27:46 1186

原创 重头开始嵌入式第二十五天(Linux系统编程 线程控制 同步与互斥)

sem_t sem;信号量的类型 信号量的变量。

2024-08-22 20:59:56 1133

原创 重头开始嵌入式第二十四天(Linux系统编程 线程)

(注意:线程相关函数在编译时记得链接上线程库)

2024-08-21 17:44:00 778

原创 重头开始嵌入式第二十三天(进程2)

今天继续进程的学习。

2024-08-20 17:33:58 952

原创 重头开始嵌入式第二十二天(Linux系统编程 进程)

进程是操作系统中的一个重要概念。进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程包含了程序执行所需的各种资源,如内存空间、CPU 时间、打开的文件、I/O 设备等。它具有动态性,即进程是程序的执行过程,会因各种条件而产生状态的变化,如创建、就绪、运行、阻塞、终止等。进程还具有并发性,在多道程序环境下,多个进程可以并发执行。独立性,进程是系统进行资源分配和调度的基本单位。

2024-08-19 17:46:45 1245

原创 重头开始嵌入式第二十一天(Linux系统编程 文件相关函数)

perror”函数的使用非常方便,它能够以直观的方式将用户自定义的描述和系统生成的具体错误消息结合起来,帮助开发者快速理解和定位错误的原因。但需要注意的是,它只能输出与 errno 相关的错误信息,如果错误并非通过设置 errno 来标识,那么 perror 可能无法提供准确有用的信息。它可以根据文件的修改时间来决定哪些部分需要重新编译,从而节省编译时间。当调用 perror 函数时,它首先输出传入的字符串,然后输出一个冒号和空格,接着输出与当前 errno 值对应的系统错误消息。

2024-08-15 17:43:28 1328

原创 重头开始嵌入式第二十天(Linux系统编程 目录操作)

在 C 语言中, fileno 函数用于获取与指定文件流相关联的文件描述符。参数 stream 是一个指向 FILE 结构的指针,通常是通过 fopen 函数打开文件时返回的文件指针。返回值是一个整数,表示对应的文件描述符。例如,如果您有一个通过 fopen 打开的文件指针 fp ,可以使用 fileno(fp) 来获取其对应的文件描述符。

2024-08-14 18:27:26 1048

原创 重头开始嵌入式第十九天(Linux系统编程 文件IO)

1.行缓冲行缓冲,1k, terminal,主要用于人机交互stdout缓存区满或者遇到\n刷新 1024行缓存多是关于终端的一些操作1.遇到\n刷新2.缓存区满刷新3.程序结束刷新4.fflush刷新 fflush(stdout);2.全缓冲全缓冲,4k,主要用于文件的读写缓存区满刷新缓存区 4096对普通文件进行标准IO操作,建立的缓存一般为全缓存刷新条件:1.缓存区满刷新2.程序结束刷新3.fflush来刷新 fflush(fp);

2024-08-13 18:27:17 1058

原创 重头开始嵌入式第十八天(Linux系统编程 标准IO)

Linux 系统编程涵盖了众多方面的知识和技术:1. 文件 I/O 操作:包括打开、读取、写入、关闭文件,以及处理文件的权限、属性等。2. 进程管理:创建新进程、进程的终止、等待进程结束、进程的执行状态控制等。3. 信号处理:接收和处理系统发送的各种信号,以响应特定的事件。4. 线程编程:创建、同步和管理线程,实现多线程并发执行。5. 进程间通信(IPC):如管道、消息队列、共享内存、信号量等方式,实现不同进程之间的数据交换和协调工作。

2024-08-12 18:01:24 807

原创 重头开始嵌入式第十七天(枚举,typedef,位运算)

在 C 语言中,枚举(Enumeration)是一种用户自定义的数据类型。在这个例子中, Day 是枚举类型, Mon 、 Tue 等是枚举常量。枚举的主要用途包括增强代码的可读性和可维护性,使代码更清晰地表达特定的离散值集合。在 C 语言中使用枚举,通常遵循以下步骤:1. 定义枚举类型:如 enum Day {MON, TUE, WED, THU, FRI, SAT, SUN};2. 声明枚举变量:可以像声明普通变量一样声明枚举变量,例如 enum Day today;

2024-08-10 19:45:05 953

原创 重头开始嵌入式第十六天(结构体,共用体)

struct 结构体名 {数据类型 成员名 1;数据类型 成员名 2;// 可以有多个成员...例如:int id;或者结构体在 C 语言中应用广泛,常用于组织和处理复杂的数据结构,如链表、树等。union 共用体名 {数据类型 成员名 1;数据类型 成员名 2;// 可以有多个成员...例如:int i;float f;

2024-08-09 18:50:21 1216

原创 重头开始嵌入式第十五天(指针操作二维数组,指针的数组,指针的指针,函数指针,回调函数)

二维字符型数组的指针指向的是字符数据,而普通数组指针指向的是其他特定的数据类型,如整数、浮点数等。总之,使用指针访问二维数组元素的关键在于理解二维数组在内存中的存储方式以及如何通过指针的移动和计算偏移量来准确地定位和访问所需的元素。总的来说,尽管操作方式相似,但由于数据类型的差异,它们在具体的应用和处理细节上会有所不同,需要根据具体的需求和场景来正确使用。通过对 argc 和 argv 的处理,可以使程序根据不同的命令行输入执行不同的操作,增强了程序的灵活性和交互性。

2024-08-08 18:47:25 1066

原创 重头开始嵌入式第十四天(指针操作字符串)

在 C 语言中, const 关键字用于声明常量。以下是 const 关键字的常见用法:1. 修饰变量:- 声明一个值不能被修改的变量。例如: const int num = 10;在此之后,尝试修改 num 的值将会导致编译错误。2. 修饰指针:- 指向常量的指针: const int *ptr;表示指针指向的内容不能通过该指针修改,但指针本身可以指向其他地址。- 常量指针: int * const ptr;表示指针本身不能指向其他地址,但可以通过该指针修改其指向的内容。

2024-08-07 18:06:10 749

原创 人工智能时代,程序员如何保持核心竞争力?

在这个充满创意的时代,仅仅会模仿和应用现有的技术是远远不够的。比如,字节跳动开发的抖音,其独特的推荐算法和创意的短视频模式,在全球范围内取得了巨大的成功。实际的项目开发是检验我们技术水平的最佳方式,通过参与不同类型、规模的项目,我们能够积累宝贵的实践经验,提高解决实际问题的能力。在技术社区积极分享自己的知识和经验,发表有价值的技术文章,参与开源项目,都能提升我们的知名度和影响力。在这个充满变革和挑战的时代,作为程序员的我们,如何在汹涌的科技浪潮中保持核心竞争力,不被淘汰,是一个值得深入思考的问题。

2024-08-07 16:53:50 1423

原创 重头开始嵌入式第十三天(指针那些事儿)

昨天给指针开了个头,今天就正式开始指针的归纳总结了,指针是c语言的特点,可以说没有学指针,就不算学了c,昨天说了指针的概念,定义及使用,今天来讲解一下指针的进阶用法。

2024-08-06 18:57:21 767

原创 重头开始嵌入式第十二天(预处理和指针)

宏定义是 C 语言中一种预处理指令,用于为标识符指定一个替换文本。它有两种常见形式:使用 #define 指令为一个标识符定义一个常量值或表达式。例如: #define PI 3.14159 ,在后续代码中使用 PI 就相当于使用 3.14159。类似于函数,但在预处理阶段进行文本替换。例如: #define SQUARE(x) ((x) * (x)) ,使用时如 SQUARE(5) 会被替换为 ((5) * (5))。

2024-08-05 18:02:15 961

原创 重头开始嵌入式第十一天(数组作为函数参数,变量范围)

今天继续函数的学习昨天了解一维数组作为函数参数,现在开始多维数组作为函数参数的学习。

2024-08-03 18:00:45 871

原创 从头开始嵌入式第十天(函数,递归)

今天继续函数的学习,首先来了解一下c语言中函数调用的底层逻辑,

2024-08-02 18:01:46 893

原创 重头开始嵌入式第九天(函数)

今天继续学习字符串功能:将s开始的n个字节,清除为0二维字符数组:一维字符串的数组接下来进入今天的正题,函数。

2024-08-01 17:56:51 523

原创 重头开始嵌入式第八天(字符串,二维数组)

今天继续介绍字符数组以下是一些常见的 C 语言字符串处理函数的介绍、函数本体、返回值、用法及实现示例: 以下是 puts 和 gets 函数的介绍、函数本体、返回值、用法及实现示例:- 函数意思:将字符串输出到标准输出(通常是屏幕)并换行- 函数本体: int puts(const char *str) - 返回值:如果成功输出则返回非负数,否则返回 EOF - 用法: puts("Hello"); - 实现: gets() 函数- 函数意思:从标准输入(通常是键盘)读取一行字符串到

2024-07-31 18:01:50 975

原创 “八股文”在实际工作中是助力、阻力还是空谈?

在实际工作中,面对多变的业务需求和复杂的技术难题,仅仅依靠“八股文”中的固定模式可能难以灵活应对。从助力的角度来看,“八股文”式的常见问题和基础知识考核,有助于确保程序员在一些关键的基础概念和技术原理上有扎实的理解。在实际工作中,要结合具体的业务需求、技术环境和个人发展目标,充分发挥其有益的一面,同时努力克服其可能带来的局限性,以不断提升程序员的综合素质和工作效能。如果过于强调个体对“八股文”的掌握,可能会导致团队成员之间在交流和合作时,过于关注理论的一致性,而忽视了不同观点和创新思路的碰撞。

2024-07-31 17:19:56 522

原创 嵌入式第七天(排序,查找)

今天继续学习数组的知识先来排序吧。

2024-07-30 18:47:07 742

原创 重头开始嵌入式第六天(数组)

此时, arr[2] 、 arr[3] 和 arr[4] 的值为 0。例如, arr[0] 表示数组 arr 的第一个元素。2. 固定大小:在定义数组时,需要指定其大小,一旦确定,在程序运行期间不能更改。3. 连续存储:数组中的元素在内存中是连续存储的,这使得访问元素的效率很高。在初始化数组时,一定要注意数组的下标范围,确保初始化的值不超出数组的边界。例如: int arr[5] = {1, 2, 3, 4, 5};1. 元素类型相同:数组中的所有元素必须是相同的数据类型。

2024-07-29 18:11:55 506

原创 重头开始嵌入式第五天(流程控制)

然而,在实际的编程中, goto 语句的使用通常被认为是不好的编程习惯,因为它可能会使程序的逻辑变得混乱和难以理解,导致代码的可读性和可维护性降低。do-while 循环与 while 循环的区别在于, do-while 循环先执行一次循环体,然后再判断条件表达式,所以无论条件表达式最初是否为真,循环体至少会执行一次。在 while 循环中,先判断条件表达式,如果为真则执行循环体,执行完循环体后再次判断条件表达式,直到条件表达式为假时退出循环。- if 语句:根据条件的真假决定执行不同的代码块。

2024-07-28 14:51:34 790

原创 嵌入式第4天(输入输出)

OK老样子,今天开头还是每日小知识如何起一个好名字1.驼峰命名法2.内核命名法3.见名之意4.尽量不要用拼音5.看情况简写小tps:printf返回值是输出的个数接下来进入今天的正题。

2024-07-26 17:45:56 790

原创 嵌入式第三天(运算符)

今天还是老样子,先继续昨天的学习继续补充一些知识。

2024-07-25 17:44:17 864

原创 嵌入式第二天(数据类型)

今天先接着昨天来讲讲vi编辑器的使用,主要继续总结一些指令。好了接下来就进入今天的正题了,进入C语言的世界。1.编程的思维(建立理解思考及解决问题的思维)2.语法(排序,查找等烂熟于心)nyy+mp复制n行,粘贴m行。4.心态(谦虚,努力,多敲)开始之前我们需要注意下面的。3.指法(做到盲敲最好)nyyp复制粘贴n行。

2024-07-24 19:07:32 802

原创 重头开始嵌入式第一天

嵌入式系统广泛应用于众多领域,如消费电子(智能手机、平板电脑)、工业控制(自动化生产线、机器人)、汽车电子(引擎控制、车载娱乐系统)、医疗设备(监护仪、手术器械)等。1. Visual Studio:功能强大,支持多种编程语言,如 C#、C++、Python 等,适用于 Windows 平台的桌面应用、Web 应用和移动应用开发。- Linux 发行版(如 Ubuntu、Fedora、CentOS 等):开源的操作系统,可根据不同需求进行定制,常用于服务器和技术爱好者的桌面环境。而软件底层就是操作系统。

2024-07-23 17:59:44 1257

原创 重头开始学嵌入式

临近毕业,发现自己貌似什么都没有记住,那就重头开始再学一次吧!

2024-07-23 15:50:46 552

空空如也

空空如也

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

TA关注的人

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