自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TFTP error: ‘Permission denied‘ (0)

环境:ubuntu 5.4.150 开发板:s3c2440在u-boot中,通过tftp传输uImage文件失败。

2024-08-24 09:32:59 375

原创 Linux系统编程——输入输出(fopen/open等函数)

注:本博客仅供学习和参考;参考资料《[Linux程序设计》

2024-08-13 17:28:12 565

原创 C语言学习日记——结构体与位运算

学习掌握结构体 共用体 枚举 别名 位运算等语法位运算。

2024-08-09 21:12:20 842

原创 C/C++ new delete 和malloc free的区别

new delete 是c++语法中的运算符malloc free是c语言语法中的函数。

2024-08-08 22:17:24 172

原创 数据结构基础

数据结构相互之间存在一种或多种特定关系的数据元素的集合。逻辑结构集合,所有数据在同一个集合中,关系平等。线性,数据和数据之间是一对一的关系树, 一对多图,多对多物理结构(在内存当中的存储关系)顺序存储,数据存放在连续的存储单位中。逻辑关系和物理关系一致链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。struct Per 数据元素char name;//数据项int age;char phone;//数据对象。

2024-08-07 20:20:46 474

原创 C语言/Sqlite3数据库

SQL struct query language 关系型数据库 非关系 芒果dbddl data defination language 建表dml 新增 修改 删除一行 data modiftydql 查询 data query language 查询 select数据库sun1、分类: 大型 中型 小型关系型数据库2、名词:DB 数据库 select update databaseDBMS 数据库管理系统。

2024-08-06 09:47:19 1604

原创 HTML网页设计

学习使用html语言设计网页。

2024-08-06 09:44:44 368

原创 Linux系统编程——udp网络通信协议

dest_addr: 必选,表示要发送到的目标主机信息结构体。1、根据以上知识点编写UDP测试程序,验证UDP协议的无链接性质。buff 要存储数据的内存区,一般是数组或者动态内存。3、将以上知识点融合,考虑如何实现一个基于UDP的聊天室程序。len 要获取的数据长度,一般是buff的大小。buff 本地的数据存储,一般是要发送的数据。src_addr 可选,表示对方的地址信息结构体,bind() 客户端是可选的,服务器端是比选的。功能:用于UDP协议中获取对方发送的数据。

2024-08-06 09:42:57 151

原创 库移植的过程(以sqlite3移植为例)

有./bin/sqlite3,./include/sqlite3.h 以及./lib/下的库文件。bin 文件夹下的sqlite3,是 sqlite 可执行应用程序,下载到板子 Linux。bin include lib share 四个目录。完成之后可以发现,之前所建目录/opt/build 下生成。建立 make install 目录。系统下的/bin 目录或者/usr/bin 目录下。等一段时间后,make 成功。下载 sqlite 最新版本。修改 makefile。

2024-08-05 21:22:54 671

原创 Linux下时间的获取

系统时间的获取总的来说可以分为这三步获取秒数格式化输出打印时间。

2024-08-05 20:48:14 713

原创 Linux系统编程——tcp网络通信协议

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。(10)首部检验和 占16位。(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

2024-07-31 16:00:43 301

原创 每日一面——文件编译的过程

文件编译的过程:.c--->预处理 .i--->编译.s--->汇编.o --->连接app。

2024-07-31 10:55:40 133

原创 Linux系统编程——进程通信

进程间通信。

2024-07-30 10:38:41 1074

原创 每日一面—— 反转字符串

【代码】每日一面—— 反转字符串。

2024-07-29 13:59:16 119

原创 Linux系统编程——线程

pthread 线程。

2024-07-27 11:53:36 708

原创 每日一面—— 编程实现字符串中子串的查找

可以看出,第32行调用strstr结束之后,r指向了数组p的第3个元素。这里strstr函数的方法是循环取src的子串与sub比较。以本题中的"12345"和"34"为例,比较步骤如下。(1)"12345"和"34"比较,不满足匹配。(2)"2345"和"34"比较,不满足匹配。(3)"345"和"34"比较,满足匹配。

2024-07-27 10:08:23 149

原创 Linux系统编程——进程

1.进程的含义?进程是一个程序执行的过程,会去分配内存资源,cpu的调度pcb 是一个结构体,process control block print circuit boardvim -tPID,进程标识符当前工作路径 chdir进程打开的文件列表 文件IO中有提到信号相关设置 处理异步io,用户id,组id进程资源的上限ulimit -a,显示资源上限。2.进程和程序的区别?程序:静态存储在硬盘中代码,数据的集合进程:动态。

2024-07-26 14:15:00 733

原创 每日一面—— 不使用库函数将整数转换为字符串

代码第 15~19 行的 while 循环中,将 n 的各个位存放到局部数组 buf 中,存放的顺序与整数顺序相反。代码第22~31行把数组buf中的非0元素逆向复制到参数str指向的内存中,如果n是负数,则保留str指向的第一个内存以存放负号'-'。在main函数的第46行对int2str函数做了测试。代码第9 行,把传入参数n 的绝对值赋给temp,以后在计算各个位的整数时就用temp了,这样保证在负数情况下取余不会出现问题。代码第21 行计算实际转换后的字符串长度len,如果是负数,长度应该再加1。

2024-07-26 11:07:42 753

原创 每日一面—— 最短的代码实现用户任意输入并打印输出要求用fgetc/fputc函数实现

while(1)

2024-07-25 10:30:51 101

原创 每日一面—— 不使用任何中间变量如何将a、b的值进行交换

代码第31~32行做了调用3种swap函数的举例,注意第40行的调用,这里在swap2函数栈中的运算会有数据溢出发生。我们知道,在32位平台下,int占4个字节内存,其范围是-2147483648~2147483647,因此2147483647加1就变成了-2147483648。swap3()采用了按位异或的方式交换a、b。按位异或运算符“^”的功能是将参与运算的两数各对应的二进制位相异或,如果对应的二进制位相同,则结果为0,否则结果为1。swap2()采用的是一种简单的加减算法来达到交换a、b 的目的。

2024-07-24 14:09:04 336

原创 每日一面—— i++与++i

此时我们不需要再做很多汇编代码的分析了,因为前缀式(++i)可以返回对象的引用,而后缀式(i++)必须返回对象的值,所以导致在大对象的时候产生了较大的复制开销,引起效率降低。因此处理使用者自定义类型(注意不是指内建类型)的时候,应该尽可能地使用前缀式递增/递减,因为它天生“体质”较佳。

2024-07-23 11:56:45 215

原创 Linux系统学习日记——vim操作手册

在命令模式下,输入“:/main”,然后回车,执行搜索命令,在文件中搜索main字符串。在命令模式下,输入“:w test.c”,然后回车,执行w命令,保存文件到test.c。在命令模式下,输入“:w”,然后回车,执行w命令,保存文件。Vim打开时,处于命令模式,即执行命令的模式,非编辑模式。在命令模式下,按p键粘贴一行字符到光标所在行的下一行。在命令模式下,输入“:q!在命令模式下,输入“:q”,然后回车,退出。在命令模式下,按x键可以删除光标处的字符。在命令模式下,按u键,撤销最近一次操作。

2024-07-18 15:07:29 604

原创 Linux系统学习日记——基础操作命令

其中,绝对路径名从目录开始,其后紧接着一个有一个文件树分支,直到到达目标目录或文件。6.将test_dir目录拷贝到你的用户主目录的Desktop目录下(例如:/home/linux/Desktop)初步认识Ubuntu系统,学会在Ubuntu系统下进行文件的增,删,查,改。5.将test_dir目录下的passwd-bak文件改名为passwd。2.将用户主目录下的passwd文件备份为passwd-bak。7.将Desktop目录下的test_dir目录改名为dir。

2024-07-16 19:48:52 133

原创 C语言学习日记——数据类型,运算符和表达式

学习数据类型的原因?1.方便编程解决现实问题2.不同类型的数据可能导致最终使用的计算机硬件的差异。

2024-05-09 20:58:22 795

原创 C语言学习日记——数组和函数的指针引用

【代码】C语言学习日记——指针学习(三)

2024-02-04 21:43:04 401 1

原创 C语言学习日记——字符串的指针引用

通过一轮的排序将序列分割成独立的两部分,其中前一部分序列的关键字均比后一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。经过上述过程前一部分的值都小于后一部分,与二分查找类似。1)先从右向左找第一个比基准数小的数,小于等于的不算。修饰指针代表指针指向的对象不可被修改,指针本身可以被修改为其他元素的指针。不能进行指针运算,因为其计算结果的数据类型不确定。指针的进一步使用,迭代的学习。

2024-02-03 21:40:44 445 1

原创 关于插入排序的bug记录

使用插入排序对10个元素的一微数组进行升序排序。

2024-02-03 10:11:13 701 1

原创 C语言学习日记——一维数组的指针引用

1 指针加一 = 原有地址 + sizeof基类型;,表示该函数的返回值是一个指向该数据类型的指针。4 指针之间可以进行减法运算不能做加法运算。使用指针完成选择排序冒泡排序和插入排序。3 不同的基类型指针相减会编译报错。其作用是通过被调函数修改主调函数。2 & 与 * 可以相互抵消;5 *要求操作数必须是指针。

2024-02-02 21:31:26 426

原创 C语言学习日记——标识符和预处理命令

带参宏会将变量储存在cpu的寄存器中,运行效率更高但复用性较低。并且CPU中的寄存器空间较小,因此不推荐使用带参宏。4在两个或者多个有包含关系的作用域声明的的同名标识符,外层标识符在内层不可见。3在没有包含关系的不同作用域中定义的同名标识符互补影响。作用2:修饰局部变量,其变量的生存期是静态生存期,由栈区转到静态区。作用1:修饰全局变量(函数),表示该变量(函数)只能被本函数调用。1标识符必须先定义再使用。修饰外部函数,说明后面内容算声明不算定义。预处理命令的本质是只换不算的文本替换。

2024-02-01 21:58:26 588 1

原创 C语言学习日记——以数组为参数的函数调用

对于以数组为参数的函数调用,今天的学习目标是理解函数的递归调用和嵌套调用。理解栈的概念,掌握一维数组,二维数组,字符数组为参数的函数调用并完成二维字符数组的相关练习。

2024-01-31 22:16:11 951

原创 C语言学习日记——函数

类型标识符 函数名(形式参数表列)声明部分语句部分无参函数相当于有参函数的特殊形式,这里不另做说明。在为函数命名时,可以使用驼峰命名法。第一个单词的首字母小写,后续每个单词的首字母大写。这种命名方式使得标识符看起来像骆驼的峰背一样,有高有低,因此得名“驼峰命名法”。例如,和myLastName都是采用了驼峰命名法。函数的定义:函数是一段具有特定功能的代码块,它可以接收输入参数并返回结果。函数的使用提高了代码的复用性、模块化和可读性。

2024-01-30 22:14:47 928 1

原创 C语言学习日记——字符数组与二维数组

1.1.字符数组的定义1.2字符数组的初始化1.2.1逐个字符赋给数组中各元素1.2.2省略数组长度1.2.3最常用的初始化方式1.3字符串和字符串结束标志1.4字符数组的输入输出1.5字符串处理函数1.5.1strlen函数(数组长度)1.5.2strcpy函数(复制)1.5.3strcat函数(拼接)1.5.4strcmp函数(比较)1.6字符数组应用举例二、二维数组2.1二维数组的定义2.3二维数组的初始

2024-01-29 22:46:01 2473

原创 C语言学习日记—— 一维数组的定义和引用

将数组与循环结合起来,可以有效地处理大批量的数据,大大提高了工作效率,十分方便。本篇介绍在C语言中怎样定义和使用一维数组。

2024-01-29 20:36:16 808

原创 C语言学习日记——循环控制

1 goto语句:2 while语句:3 do while语句:4 while语句和do while语句的比较:5 for语句:6 break语句:

2024-01-26 22:03:13 1846

原创 C语言学习日记——选择结构程序设计

1关系运算符和关系表达式。2逻辑运算符和逻辑表达式。3if语句的嵌套。4switch语句。

2024-01-25 21:48:52 2161 1

空空如也

空空如也

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

TA关注的人

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