自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程编程,进程间通信

进程编程一、进程的概念1.什么是程序:2.什么是进程 :3.进程内容:4.进程类型:5.进程状态二、查看进程信息三 、进程相关命令四、进程相关命令1.进程的创建-----fork()2.父子进程的关系3.进程结束 exit/_exit4.exec 函数族① execl/execlp② execv/execvp③system5.进程回收①pid_t wait(int *status);② pid_t waitpid(pid_t pid ,int *status,int option);五、守护进程1.守护

2022-04-05 14:47:30 1232

原创 线程编程1

线程编程 一、线程和进程的区别二、Linux线程库1.创建线程2.回收线程3.结束线程4.线程间通信同步和互斥机制①.信号量②.互斥锁一、线程和进程的区别进程:有独立的地址空间,Linux为每个进程建立task_struct,每个进程都参与内核调度,互不影响进程在切换的时候开销大.很多操作系统引入了轻量级进程LWP.同一进程中的线程共享相同的地址空间. Linux不去区分进程线程,都认为是任务.2.使用多线程的 好处: 大大提高了任务切换的效率,避免了额外的TLB&cache的刷新3.线

2022-04-03 16:45:00 97

原创 虚拟文件系统

什么虚拟文件系统Virtual File System ?vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口,虚拟文件系统有什么作用?简化应用程序员的开发不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write统一操作...

2021-12-14 19:45:00 636

原创 文件系统认知

文件系统认知1. 什么是文件系统?2. 文件系统(文件管理系统的方法)的种类有哪些?3. 什么是分区?1. 什么是文件系统?常规认知: 根目录文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配

2021-12-14 19:23:34 878

原创 Linux内核源代码目录树结构

Linux内核源代码目录树结构。arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。block:部分块设备驱动程序。crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。Documentation:关于内核各部分

2021-12-14 17:24:13 101

原创 树莓派Linux源码配置和树莓派Linux内核编译

树莓派Linux源码配置一.如何配置树莓派的Linux内核1.配置.config2.使用源码里自带的config3. 编译1、执行menuconfig2、编译3、打包zImage文件4.挂载树莓派sd卡,并安装编译出的DIRECTLY 到sd卡1、挂载U盘2、安装modules3、更新 kernel.img 文件4、复制其他相关文件一.如何配置树莓派的Linux内核1.配置.configlinux源码中有很多工程:树莓派1的工程是bcmrpi_defconfig;树莓派2、3的工程是bcm2709

2021-12-03 22:15:39 337

原创 软连接硬链接

概念:1. 软链接文件有类似于Windows的快捷方式。2. 在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。3. 你选定的位置上生成一个文件的镜像,不会占用磁盘空间如何生成:ln -s libwiringPi.so.2.50 libwiringPi.so指令 参数 要被链接的文件 软链接文件名字硬链接:ln libwiringPi.so.2.50 libwiringPi.so它会在你选定的位置上生成一个和源文件大小相同的文件无论是软链接还是硬链接,文件

2021-12-03 20:23:42 67

原创 Linux交叉编译——>树莓派

Linux交叉编译一. 交叉编译是什么?二.为什么要交叉编译?三.交叉编译需要用到什么工具?1.交叉编译工具链的安装一. 交叉编译是什么?交叉编译 是在一个平台上生成另一个平台上的可执行代码。我们在windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out, 是在树莓派上面运行,不是在ubuntu linux上面运行编译:是在一个平台上生成在该平台上的可执行代码C

2021-12-03 20:09:56 104

原创 Linux库概念及相关编程

Linux库概念及相关编程分文件编程库一.静态库1.静态库的概念及优缺点2. 静态库的创建二. 动态库分文件编程好处:分模块的编程思想b.方便调试c.主程序简洁库一.静态库1.静态库的概念及优缺点什么是静态库:静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。静态库的优缺点:优点:1.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要提供该静态库2. 程序反

2021-12-02 22:32:16 1030

原创 java 面向对象之多态

多态一.多态的概念二.对象的上中下转型1.意义2.实现三.多态的应用一.多态的概念多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果多态存在的三个必要条件·需要存在继承和实现关系·同样的方法调用而执行不同操作、运行不同代码(重写)·在运行时父类或者接口的引用变量可以引用其子类的对象多态的作用·多态通过分离做什么和怎么做,从一个角度将接口和实现进行分离·多态消除了类型之间的耦合关系·多态的存在提高了程序的拓展性和后期的可维护性abstract class An

2021-11-23 23:07:29 252

原创 java内部类

内部类一.内部类的特点1.内部类应用2. 实例二.匿名内部类1.匿名内部类的特点2.实例一.内部类的特点1.内部类应用所谓内部类(Inner Class),顾名思义,就是将一个类定义在另一个类的内部。内部的类称之为内部类内部类的主要特点:·内部类可以很好的实现隐藏,可以使用protected private修饰符·内部类可以直接访问外部类的所有成员,包括私有的成员·外部类不能直接访问内部类的成员,必须首先建立内部类的对象才能访问成员内部类及应用·成员内部类属于外部类的实例成员,成员内部

2021-11-23 23:02:33 203

原创 java 之抽象类和接口

抽象类一.抽象类的概念和作用1.·抽象类2.·抽象类的特点3. ·抽象方法的特点4. 实例二.模板方法1.定义2.意图(作用)3.实例三.接口概念和作用1. 接口语法和特点2.实例四.接口和抽象类的区别一.抽象类的概念和作用1.·抽象类Java中可以定义没有方法体的方法,该方法由子类来具体实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类2.·抽象类的特点 定义中含有抽象方法的类叫做抽象类抽象类用abstract来修饰抽象类代表一种抽象的对象类型抽象类不能实例

2021-11-23 22:59:25 49

原创 初学java面向对象编程三大特性之——继承

面向对象编程三大特性之——继承一、继承的概念和实现二、super关键字1.super关键字的特点2.代码实现三、方法重写-Override1.什么是方法重写2.方法重写注意点3.代码实现四、Object类常见方法一、继承的概念和实现生活中,继承的概念随处可见继承需要符合的关系:is-a;父类更通用更抽象、子类更特殊更具体·继承背后的思想就是 基于已存在的类来构建新类·当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求·约定:从其他类导出的类叫做子类。被

2021-11-23 00:22:29 206

原创 初学java面向对象编程三大特性之——封装

面向对象编程三大特性之——封装一.封装的概念1.信息隐藏的原因包括:2.访问修饰符3.属性封装的实现4.方法封装的目的二.UML类图三.构造方法1.类的构造方法的概念和作用2.构造方法的语法和规则3. 构造方法的实例4.构造方法的调用四.this关键字的特点与实例1. 特点2.实例五.static关键字的特点 实例 注意事项1. 特点2.实例3. 注意事项六.方法重载七. 包一.封装的概念1.将东西包在一起,然后以新的完整形式呈现出来2.将方法和字段一起包装到一个单元中,单元以类的形式实现3.信息隐

2021-11-21 22:30:44 65

原创 初学java

初学java1.工程的建立2.新建.java文件3.基本设置1.工程的建立打开eclipsefile->New->java Project;2.新建.java文件加粗样式在src 文件夹下鼠标右键New->Class3.基本设置字体设置:window->General->Appearance->Colors and Fonts运行结果窗口移动;起初在最下面看着不舒服怎么办?鼠标拖动窗口到最右面,在点击最小话就会跑到右上角,并且为小窗口.

2021-11-20 22:33:36 176

原创 形式参数的解读,一维数组和二维数组作为形参

形式参数解读什么是形式参数形式参数的作用域形式参数的作用一级目录二级目录三级目录什么是形式参数“自定义函数中的“形参”全称为形式参数 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。”形式参数的作用域函数的形式参数的作用域为本函数。形式参数是在定义函数名和函数体的时候使用的,目的是用来接收调用该函数时传入的参数。形式参数的作用其作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。形式参数不是实际存在变量,只有在程序执行过

2021-11-20 16:46:58 1903

转载 解决Ubuntu下不能解析域名“us.archive.ubuntu.com”

https://www.cnblogs.com/jiaqizhang/p/9771890.html

2021-11-15 22:57:23 361

原创 strtok用法

2021-11-15 22:54:19 75

原创 atoi 函数

atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr)

2021-11-15 22:53:28 189

转载 sudo apt-get install 下载命令是报错

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?转载:https://blog.csdn.net/u010608296/article/details/1024

2021-11-15 22:20:47 138

原创 函数的形式参数作用域及生存期

1.形式参数,作用域仅限该函数2.形式参数,也是一个变量,局部变量,有自己的内存空间 a.空间的生存期,出生和死亡何时申请了该空间?当函数被调用的时候才申请了该内存空间,才有了这个变量 同时这个空间内的数据被赋值成实际参数的值,函数调用把实际参数的值拷贝一份给形式参数。b.何时释放了该空间?函数执行结束后,该空间由内存管理单元自动回收(释放)...

2021-11-13 23:32:33 398

原创 strtok

在用strtok函数的时候就很纳闷为啥第二次调用的时候会是NULL原来是它把原来的分隔符替换成’\0’

2021-11-13 23:28:53 224

原创 没有显示屏或者串口登录不上可选择网络登录和配置源

准备固件SD卡如果你的固件是官方发布的 由于树莓派自带SSH server,但默认关闭,需手动开启ssh那么需要如何开启呢?1.在桌面创建一个文件重命名为ssh(注意没有后缀名)2.再次创建一个文件重命名为 wpa_supplicant.conf编辑内容country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WIFI名" //最好是手机.

2021-11-13 23:25:43 556

原创 树莓派串口登录

默认情况,树莓派与蓝牙连接,我们需要断开蓝牙连接,通过串口进行数据通讯打开SD卡BOOT根目录打开config.txt文件在底部添加dtoverlay=pi3-miniuart-bt这样就停止了蓝牙,解除了对串口的占用。打开cmdline.txt文件把里面的代码替换掉下面的 dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=d

2021-11-11 23:32:03 278

原创 树莓派刷机

树莓派3B闪迪16G内存卡读卡器使用Win32 Disk imager 进行固件刷机 选择内存卡(不要选错认真观察),选择固件进行刷机等待刷机结束这里点取消,然后拔出读卡器将内存卡放入树莓派

2021-11-11 23:17:08 202

原创 实现客户端对服务端的文件获取,发送,查看服务端路径,查看客户端路径

服务端#include <stdio.h>#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h>#include <stdlib.h>#include <string.h>#include "sufei.h"#include <unistd.h>#include <sys/stat.h>#in

2021-11-07 16:44:15 404

原创 实现客户端和服务端对话

服务端#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#include <stdlib.h>#include <string.h>int main (int argc ,char **argv)

2021-11-07 16:38:58 70

原创 基于单链表的生产者消费者模型

我们用两个线程分别表示生产者与消费者,用单链表表示缓冲区。生产者生产数据,插入到单链表的头部。消费者消费数据,从单链表的头部读数据。#include <stdio.h>#include <pthread.h>#include <stdlib.h>typedef struct palce_t{ struct palce_t *next; int data;}place;place *head=NULL;static pthread_mutex_t l

2021-11-03 20:23:02 86

原创 线程之条件变量

  1. 创建及销毁条件变量#include <pthread.h>int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);int pthread_cond_destroy(pthread_cond_t cond);// 返回:若成功返回0,否则返回错误编号 2. 等待#include <pthread.h>int pthread_

2021-11-02 23:40:10 66

原创 线程的创建,加锁,解锁销毁锁

#include <pthread.h>int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);销毁int pthread_mutex_destroy(pthread_mutex_t mutex);// 返回:若成功返回0,否则返回错误编号#include <pthread.h>加锁int pthread_mutex_lock(pthr

2021-11-02 23:34:45 427

原创 线程的创建,退出等待

int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg);// 返回:若成功返回0,否则返回错误编号tidp->>>线程名字attr->>>什么属性的线程void *(*start_rtn)(void *) 进入线程干什么void *restrict arg

2021-11-02 23:23:47 66

原创 信号量编程

int semget(key_t key, int nsems, int semflg); //返回信号量的ID int nsems->>信号量的个数 int semfig->>若没有则创建IPC_CREAT int semop(int semid, struct sembuf *sops, unsigned nsops);//struct sembuf *sops 结构体指针 sops[0].sem_num = 0; 信.

2021-11-01 23:15:05 97

原创 高级信号编程

int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);//signum->>要捕捉的信号 //const struct sigaction *act->>捕捉到信号后干啥// struct sigaction *oldact->>备份不备份NULL struct sigaction { void (*sa_handle

2021-11-01 21:51:44 45

原创 初级信号编程

sighandler_t signal(int signum, sighandler_t handler); signum ->>要捕捉的信号 handler->>捕捉之后干什么? 捕捉信号#include <stdio.h>#include <signal.h>void handler (){ printf("hello world!\n");}int main (){ printf("pid

2021-11-01 21:02:02 48

原创 标准C库对文件的操作

fopen的函数原型为: FILE *fopen(const char *filename, const char *mode);其功能是使用给定的模式 mode 打开 filename 所指向的文件。文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,并把错误代码存在 error 中。该函数位于C 标准库<stdio.h>中参数filename-- 这是 C 字符串,包含了要打开的文件名称。mode-- 这是 C 字符串,包含了文件访问模式。访问模式操作看:

2021-10-29 22:19:30 88

原创 文件编程之open write lseek函数原型及用法

linux 提供了一些API如 打开 open函数原型:int open(constcharpathname,intflags);int open(constcharpathname,intflags,mode_t mode);返回值:成功则返回文件描述符,否则返回-1对于open函数来说,第三个参数仅当创建新文件时(即 使用了O_CREAT 时)才使用,用于指定文件的访问权限位(access permission bits)。pathname 是待打开/创建文件的POSIX路径名(如/hom

2021-10-29 21:52:13 132

原创 记一个错误warning: missing sentinel in function call [-Wformat]

warning: missing sentinel in function call [-Wformat]调用 execlp函数时出现这个错误 是因为最后一个参数必须是NULL

2021-10-28 15:18:21 347

原创 贪吃蛇小项目

#include <curses.h>#include <stdlib.h>#include <pthread.h>#define UP -1#define DOWN 1#define LEFT 2#define RIGHT -2typedef struct snake{ int hang; int lie; struct snake *next;}Snake,*pSnake;Snake food;void initFo

2021-10-25 22:54:02 48

转载 ubutu vi如何剪切粘贴

https://jingyan.baidu.com/article/2d5afd69ad2c0dc5a2e28eda.html

2021-10-23 22:07:31 50

原创 字符串常用的API

#include <stdio.h>#include <string.h> //包含对字符串操作的头文件int min (){ char *pstr; //野指针,造成非法空间,无法对其指向的地址操作————就像写字没有找的纸一样 pstr=(char*)malloc(128) //用malloc()进行开辟空间; if(pstr==NULL){ printf("申请内存失败\n"); exit(-1); } memset(pstr,'\n',128);//

2021-10-20 10:49:12 60

空空如也

空空如也

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

TA关注的人

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