自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 字符编码的常用种类

添加链接描述

2021-10-04 12:10:42 114

转载 常见存储器的分类

添加链接描述

2021-10-04 11:14:53 263

原创 应用开发基础----网络编程(TCP)

server:#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <string.h>#include <unistd.h>#include <netinet/in.h>#include <arpa/inet.h>/*socket*bind*listen*acc

2021-08-29 23:27:30 167

原创 应用开发基础----hello程序的引申

hello.c源码:#include <stdio.h> /* 执行命令: ./hello weidongshan * argc = 2 * argv[0] = ./hello * argv[1] = weidongshan */ int main(int argc, char **argv){ if (argc >= 2) printf("Hello, %s!\n", argv[1]); else

2021-08-26 09:49:42 120

原创 开发板挂载Ubuntu的NFS目录

一、什么是NSF协议?NFS实现了一个跨越网络的文件访问功能,如下图可以简要说明其原理。其整个架构为Client-Server架构,客户端和服务端通过RPC协议进行通信,RPC协议可以简单的理解为一个基于TCP的应用层协议,它简化命令和数据的传输。NFS最大的特点是将服务端的文件系统目录树映射到客户端,而在客户端访问该目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器。NFS是一种网络服务。二、我们为什么要挂载ubuntu的nfs目录?我们有些时

2021-08-24 13:40:36 817

原创 开发板设置静态IP

设置IP为固定静态IP(开机不变) 设置eth0为静态IP地址,开发板/etc/network/目录下对interfaces文件进行修改 。[root@100ask:~]# vi /etc/network/interfaces修改并为如下内容,执行 :wq 保存并退出,执行/etc/init.d/S40network restart 重启网络服务。auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.1

2021-08-24 12:01:59 1616

原创 虚拟机中三种网络连接

1.Bridge模式(桥接模式)这种模式是在新建虚拟机的时候默认选择的,是将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上面,实际上是将Host主机的物理网卡设置为混杂模式,从而达到侦听多个IP的能力。在这种模式下,虚拟主机的虚拟网卡直接与Host主机的物理网卡所在的网络相连,可以理解为虚拟机和Host主机处于对等的地位,在网络关系上是平等的,没有谁主谁次、谁前谁后之分。2.NAT模式这种模式下Host主机的“网络连接”中会出现了一个虚拟的网卡VMnet8(默认情况下)。如果你做过2000/20

2021-08-24 11:59:48 345

原创 Shell编程

文章目录一、Shell是什么?二、Shell脚本的执行方式三、Shell的变量设置环境变量位置参数变量预定义变量四、运算符五、条件判断六、流程控制if判断case语句for循环while循环七、read读取控制台输入八、函数九、Shell编程综合案例一、Shell是什么?Shell是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。二、Shell脚本的执行方式脚本格式要求1.脚本以#!/bin/b

2021-08-19 13:06:24 173

原创 段错误产生原因

段错误是指访问的内存超过了系统给程序分配的内存空间。一旦一个程序发生了越界访问,就会产生相应的保护,于是segmentation fault就发生了。产生原因:访问不存在的内存空间没有申请空间就直接拷贝数据:#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, char **argv){ char *ptr = NULL; strncpy(ptr,

2021-08-18 15:21:08 109

原创 多线程编程

文章目录一、互斥锁1.互斥锁函数2.互斥锁使用二、死锁三、读写锁1.读写锁函数四、条件变量1.引入库五、信号量1.引入库一、互斥锁1.互斥锁函数Linux 中互斥锁的类型为 pthread_mutex_tpthread_mutex_t mutex;创建的锁对象保存当前锁的状态(打开还是锁定),如果是锁定状态,还记录着给这把锁加锁的线程信息(线程ID)。一个互斥锁变量只能被一个线程锁定,被锁定之后其他线程再对互斥锁变量加锁就会被阻塞,直到这把互斥锁被解锁,被阻塞的线程才能被解除阻塞。一般情况下,

2021-08-18 10:56:08 66

原创 Github常用搜索条件

搜索名字:in:name xxx搜索描述:in:description xxx搜索readme:in:readme xxx按stars:stars:>2000按fork:fork:>3000仓库大小搜索:size:>=5000[说明5000大小5000k]按更新时间:pushed:>2020-01-01按语言:language: xxx按作者名:user:xxx[注意后面不要有空格]以上搜索方式可以组合,叠加...

2021-08-17 15:33:38 206

原创 Linux学习笔记

文章目录一、crond任务调度特殊符号应用实例二、at任务调度应用实例一、crond任务调度crontab 进行 定时任务的设置概述任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:1.系统工作:有些重要的工作需要周而复始的执行2.个别用户工作:个别用户希望执行某些程序。基本语法crontab [选项]常用选项-e 编辑crontab定时任务-l 查询crontab任务-r 删除当前用户所有的crontab任务

2021-08-15 13:52:06 102

原创 Linux常用命令

文章目录1.指定运行级别2. 帮助指令1.指定运行级别systemctl set-default graphical.target 图形界面(级别5)systemctl set-default multi-user.target 多用户状态有网络服务(级别3)systemctl get-default 查看当前级别2. 帮助指令data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data

2021-08-13 12:09:51 62

转载 线程同步

文章目录线程同步概念1.为什么要线程同步2.同步方式线程同步概念假设有 4 个线程 A、B、C、D,当前一个线程 A 对内存中的共享资源进行访问的时候,其他线程 B, C, D 都不可以对这块内存进行操作,直到线程 A 对这块内存访问完毕为止,B,C,D 中的一个才能访问这块内存,剩余的两个需要继续阻塞等待,以此类推,直至所有的线程都对这块内存操作完毕。所谓的同步并不是多个线程同时对内存进行访问,而是按照先后顺序依次进行的。1.为什么要线程同步比如让两个线程交替数数,两个线程在数数的时候需要分时复

2021-06-08 19:31:05 91

原创 【Linux】---线程

文章目录一、pandas是什么?二、使用步骤1.引入库2.读入数据一、pandas是什么?二、使用步骤1.引入库2.读入数据

2021-06-05 12:00:21 129

原创 【C语言】---指针

文章目录一、指针是一种数据类型二、间接赋值(*p)是指针存在的最大意义三、理解指针必须和内存四区概念相结合四、应用指针必须和函数调用相结合(指针做函数参数)一级指针典型用法二级指针典型用法一、指针是一种数据类型指针变量也是一种变量,占有内存空间,用来保存内存地址测试指针变量占有内存空间大小。*p操作内存在指针声明时,* 号表示所声明的变量为指针在指针使用时,* 号表示操作指针所指向的内存空间中的值*p相当于通过地址(p变量的值)找到一块内存,然后操作内存*p放在等号的左边赋值(给

2021-05-20 16:54:52 881

原创 【C语言】---内存四区(二)

文章目录一、程序的内存四区模型1.栈区和堆区2.全局区二、函数的调用模型三、函数调用变量传递分析四、栈的生长方向和内存存放方向一、程序的内存四区模型流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行1.栈区和堆区#include <stdio.h>#include <string.h>#include <stdlib.h>char *get_str(){ char

2021-05-19 16:44:48 100

转载 网络协议相关

七层网络模型三次握手四次挥手socket,tcp,http三者之间的区别和原理

2021-05-17 22:05:37 54

原创 【C语言】---内存四区(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-05-17 22:04:03 116

原创 交叉编译工具链

文章目录一、概念1.交叉编译是什么?2.为什么要交叉编译?例子:3.工具二、交叉编译工具链的安装三、交叉编译的使用在VMware写程序,到树莓派运行四、带WiringPi库的交叉编译1.交叉编译是什么?1.交叉编译是什么?1.交叉编译是什么?一、概念1.交叉编译是什么?交叉编译 是在一个平台上生成另一个平台上的可执行代码。(编译:是在一个平台上生成在该平台上的可执行代码)2.为什么要交叉编译?平台上不允许或不能够安装我们所需要的编译器(c51)。 1.因为目的平台上的资源贫乏,无法运行我们所需

2021-04-18 10:41:55 1029 1

转载 树莓派wiringPi库详解

参考博文

2021-04-17 18:24:16 205

原创 linux静态库和动态库

文章目录一、库的介绍1.库是什么2.优缺点二、库的制作1.静态库(1)命名规则(2)制作步骤(3)库的使用2.动态库(1)命名规则(2)制作(3)库的使用>引用动态库,怎么指定动态库的位置?参考博文参考博文一、库的介绍1.库是什么库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容。1 .静态函数库: 是在程序执行前就加入到目标程序中去了2 .动态函数库同共享函数库是一个东西(在lin

2021-04-17 11:05:29 141

原创 文件共享

文章目录一、树莓派和windows文件共享二、linux和windows文件共享1.直接拖入2.文件共享一、树莓派和windows文件共享使用FileZilla:连接之后拖拽即可。二、linux和windows文件共享[前提]:虚拟机要装有VMware Tools1.直接拖入直接拖动windows(虚拟机)下的文件到虚拟机(windows)界面中。2.文件共享设置VMware【虚拟机】>【设置】>【选项】>【共享文件夹】>【总是启用】>【添加】>【确定】...

2021-04-16 13:01:38 118

原创 树莓派更换国内可用镜像源(更新vim)

默认的源是国外的,apt-get 安装的时候失败,更新成国内的源参考博文1.编辑sources.list(1). 打开终端,输入sudo nano /etc/apt/sources.list(2). “#” 注释原有内容,更换为deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpictrl+x 保存并退出。2.更新源sudo apt-get update

2021-04-15 14:37:08 371

原创 树莓派登录

目录一、HDMI视频线 连接到显示器二、串口1.修改系统配置,启用串口登录树莓派2.硬件连接3.使用secureCRT打开三、网络登录1.一、HDMI视频线 连接到显示器二、串口参考博文1.修改系统配置,启用串口登录树莓派打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存。解除蓝牙对串口的占用。dtoverlay=pi3-miniuart-bt修改根目录的"cmdline.txt",将里面的内容全部替换成以下内容。修改配置。dwc_otg.lpm_en

2021-04-11 09:50:20 151

原创 ftp

server.c#include <stdio.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/types.h> /* See NOTES */#include <string.h>#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>

2021-04-06 23:24:13 87

原创 4.信号量

文章目录信号量1.特点:2.原型:3.例子:信号量信号量(semaphore)与已经介绍过的 IPC 结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。1.特点:1.信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。2.信号量基于操作系统的 PV 操作,程序对信号量的操作都是原子操作。3.每次对信号量的 PV 操作不仅限于对信号量值加 1 或减 1,而且可以加减任意正整数。4.支持信号量组。2.原型:#include <sys/se

2021-03-19 14:19:12 244

原创 3.共享内存

文章目录共享内存1.特点:2.原型:3.例子:共享内存共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。1.特点:1.共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。2.因为多个进程可以同时操作,所以需要进行同步。3.信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。2.原型: #include <sys/shm.h> // 创建或获取一个共享内存:成功返回共享内存ID,失败返回-1 int shmget(key_t

2021-03-16 10:30:41 318

原创 2.消息队列

文章目录一、消息队列1.特点:2.原型:3.例子:一、消息队列消息队列,是消息的链接表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。1.特点:1.消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。2.消息队列独立于发送与接收进程。进程终止时,消息队列及其内容并不会被删除。3.消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取。2.原型:#include <sys/msg.h>2 // 创建或打开消息队列:成功

2021-03-15 23:37:16 213

原创 进程间通信----1.管道

文章目录前言一、管道(无名管道)1.特点:2.原型:3.例子:二、命名管道1.引入库2.读入数据总结前言进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道(无名管道)1.特点:(1)半双工(数据只能在一个方向上流动)(2)只用于具有亲缘关系的进程之间的通

2021-03-15 17:58:06 57

原创 4.文件操作--实现cp指令

实现步骤:1.打开需要被复制的文件2.读取该文件的内容3.打开/创建目标文件4.将读取的内容写到目标文件中5.关闭两个文件代码如下(示例):#include<stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include<string.h>#include <stdlib.h&

2021-03-09 15:58:21 135

原创 3.文件光标移动操作

头文件:#include <sys/types.h>#include <unistd.h>lseek函数off_t lseek(int fd, off_t offset, int whence);将文件读写指针相对whence移动offset个字节。whence: SEEK_CUR 文件当前位置 SEEK_SET 文件头 SEEK_END 文件尾部o

2021-03-07 17:53:36 147

原创 2.文件写入和读取

头文件: #include <unistd.h>1.写入文件write函数ssize_t write(int fd, const void *buf, size_t count);write() writes up to count bytes from the buffer pointed buf to the file referred to by the file descriptor fd.代码如下(示例):#include <sys/types.h>#

2021-03-05 12:50:07 201

原创 Linux文件操作---1.文件的打开及创建

头文件: #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>open函数 - int open(const char *pathname, int flags); - int open(const char *pathname, int flags, mode_t mode);pathname:要打开的文件名(含路径,缺省为当前路径)flag

2021-03-04 16:48:01 212 1

空空如也

空空如也

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

TA关注的人

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