自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51单片机常用协议、芯片等的常用函数

51单片机常用芯片函数lcd1602、at24c02、ds1820、led点阵屏等等

2022-05-13 13:29:55 683

原创 ununtu重新启动后共享文件夹消失的解决方案

运行 sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000需要自己查看uid的值,更目录下输入idubuntu:~$ iduid=1000(yq) gid=1000(yq) 组=1000(yq),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)我这里为1000然后如果出现fuse: mountpoint is not

2021-05-27 10:12:30 1154 2

原创 linux库文件

Linux库文件引入:1.静态函数库:在函数执行前就加入到目标程序中。 优点:运行快,发布程序无需提供静态库,移值方便 缺点:程序太大,链接时被完整地拷贝到目标程序中去,被多次使用就有多次拷贝冗余。更新部署发布麻烦2.动态函数库:在函数执行时动态(临时)的由目标程序去调用中去。动态函数库同共享函数库是同一个东西。优点:链接时不用复制,程序运行时由系统动态的加载到内存,系统只加载 一次,多个程序可以共用,节省内存。程序升级简单,缺点:运行速度没有静态库快。发布程序需要提供依赖的动态库。

2021-05-23 20:25:07 131

原创 树莓派接入网络的三种方式

树莓派接入网络的三种方式:1、显示器接入,直接用HDMI线将两者直接接入2、串口方式:打开SD卡根目录下的config.txt文件,在文件最后插入dtoverlay=pi3-miniuart-bt打开SD卡根目录下的cmdline.txt文件,将原有内容更换为dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.rep

2021-05-23 17:12:16 1599

原创 线程的条件控制实现线程的同步

在使用线程的时候,通常需要对多线程惊醒条件判断实现同步控制,这里就得用到与线程条件相关的API。即线程的等待和触发,注:条件变量使用前必须先初始化。相关代码如下:#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <stdlib.h>// int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

2021-05-17 19:25:10 141

原创 线程、互斥锁

多线程:与进程相比,多线程是一种非常节俭的多任务操作方式。在linux系统下,启动一个新进程必须分配给他独立的地址空间,建立众多的数据表来维护他的代码段、堆栈段和数据段。这是一种昂贵的多任务工作方式。而运行于一个进程中的多个线程,他们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间要远远小于启动一个进程所花费的空间。而且线程间彼此切换花费的时间也要远远小于进程间切换所花费的时间,据统计,总的来说,一个进程的开销大约是一个线程开销的30倍左右。与进程相比,线程有更加方便的通信机制,对不

2021-05-16 16:51:38 182

原创 共享内存

共享内存是指两个或多个进程共享一个指定的存储区域。特点:共享内存是一种最快的进程间通信方式,因为可以直接对内存进行操作因为是多个进程同时进行操作,所以需要进行同步下面直接引入代码操作:写端:#include <stdio.h>#include <stdlib.h>#include <sys/ipc.h>#include <sys/shm.h>#include <string.h>#include <unistd.h>

2021-05-13 17:22:30 96

原创 消息队列

消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级消息队列渡路与发送与接收进程,进程终止是,消息队列及其内容并不会被删除消息队列可以实现消息的随即查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取。创建消息队列一般用msgget;int msgget(key_t key, int msgflg);创建成功返回消息队列的ID否则返回-1;• 如果:如果没有与键值key相对应的消息队列,并且flag中包含了IPC_CREAT标志位。• key参数为IPC_PRIVATE。

2021-05-11 17:57:17 95

原创 linux文件操作-进程间通信-无名管道和有名管道

无名管道:他是半双工的,即数据只能朝一个方向上流动,具有固定的读端和写端。只能用于父子进程或者兄弟进程等之间具有血缘关系的进程间通信。实现以来父子进程和文件共享。对于他的读写可以使用普通的read和write函数,但是他们不是普通的文件,并不属于其他任何文件。函数原型:#include <unistd.h>int pipe(int fd[2]);参数fd返回两个文件描述符,fd[0]为读,fd[1]为写。写数据时关闭fd0,读数据时关闭fd1.通常和forh函数一起使用,这样就创建了一个

2021-05-11 14:56:14 164

原创 点亮LED小灯

定时器配置:定时器配置步骤:第一:设置特殊功能寄存器TMOD,配置好工作模式。第二:设置计数寄存器TH0和TL0的初值。第三:设置TCON,通过TR0置1来让定时器开始计数。第四:判断TCON寄存器的TF0位,监测定时器溢出情况。这里展示一个用定时器精确定时1s的LED灯的小实验:首先根据步骤配置特殊功能寄存器定时器模式寄存器TMODTMOD=0X01;设置计数寄存器TH0和TL0初值:这里要定时1s,但是单片机定时器TH0和TL0都设置成0x00也只能定时70ms,这里可以让他定时20

2021-05-04 16:22:15 225

原创 进程间通信-父进程和子进程

进程相关概念;在Linux当中,使用ps指令查看系统中有哪些进程 ps -aux实际工作中有ps加grep配合查看系统中是否存在,某一进程Ps -aux|grep **;进程标识符:每一个进程都有非负整数表示一个唯一ID,叫做pid,类似身份证Pid=0,称为交换进程(swapper)作用是进程调度Pid=1,称为初始化进程(init)作用是初始化进程进程A创建了进程B,则称进程A是进程B的父进程,B是Ade子进程。通常调用getpid()来获取父进程的进程标识符。用fork函数创建一个进

2021-05-03 11:29:17 1537

原创 linuc文件操作

文件操作之fopen、fwrite、发read、fclose、fseek、fputc、fgetc、feofAPI对于文件的操作fopen:FILE *fopen(const char *pathname, const char *mode);返回值是一个FILE类型的指针第一个参数是要操作的文件,第二个参数是对文件操作的权限:“r” = “rt”打开一个文本文件,文件必须存在,只允许读“r+” = “rt+”打开一个文本文件,文件必须存在,允许读写“rb”打开一个二进制文件,文件必须存

2021-05-01 21:54:49 186

原创 2021-04-30linuc文件操作1

文件操做:文件操作的一般步骤:打开创建文件->读取/写入文件->关闭文件1、 在Linux中要操作一个文件,一般实现open打开一个文件,得到文件描述符,然后对文件进行读写操作(或其它操作),最后是close关闭文件即可。2、 强调一点:我们对文件进行操作时,一定要先打开文件,打开成功后才能操作,如果打开失败就不用进行后续操作了,最后读写完成后,一定要关闭文件,否则会造成文件损坏3、 文件平时是存放在块设备中的文件系统文件中的,我们把这种文件叫做静态文件,当我们去open一个文件时,L

2021-04-30 10:36:27 123

原创 2021-04-28初学文件操作

1、 文件操作指令:open函数int open(const char *pathname, int flags);第一个参数是一个字符串指针,指向的是文件名第二个参数是函数权限Open函数有只读O_RDONLY,只写O_WRONLY和可读可写O_RDWR;当我们附带了权限之后打开文件只能用这种权限来操作,以上这三种参数应当只选择其中一种,下列参数是可以选择的:O_CREATE;当文件不存在时创建一个文件,,使用该参数时需要注意同时说明第三个参数mode,即:int open(const cha

2021-04-28 19:33:19 93

原创 2021-04-28学生成绩管理系统

用从语言链表创建一个学生成绩管理系统(Linux环境下)场景和功能功能包括:场景:一个年级,相当链表A该年级5个班,每个班5个人,相当于链表B1–B5做一个学生成绩管理系统学生成绩有语文 数学 英语功能: 录入成绩 找最三科总分的最高分 最低分 算出平均分`/* 学生成绩管理系统*/#include <stdio.h>#include <stdlib.h>typedef struct student{ char* name; int n

2021-04-28 16:20:36 93

原创 2021-04-25贪吃蛇小游戏

用C语言在Linux下写一个贪吃蛇的小游戏具体操作分为以下步骤:1.设计游戏地图2.创建蛇的身体3.让蛇动起来4.创建蛇的事物5.让蛇的食物动起来6.让蛇吃食物长大具体思路为上述六个部分其中本次点用了LINUX的ncurses图形库函数,编译时要记得加如图形库创建表蛇的身体用链表动态创建,利用尾插法插入一个新节点,移动的时候不断插入新节点并将头节点删除,不要忘了将头结点的空间释放。蛇移动时,界面需要不断刷新,加入了线程的函数,让他不断被进行while循环从而每移动一次,地图就刷新一次。事物

2021-04-25 12:25:28 102

空空如也

空空如也

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

TA关注的人

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