自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ray的博客

有人送了我两个书签,一个叫向阳,一个叫迎风。

  • 博客(32)
  • 资源 (5)
  • 收藏
  • 关注

原创 LINUX-网络编程IO多路复用并发服务器实现篇

LINUX-网络编程IO多路复用并发服务器实现篇select和poll实现

2022-05-18 15:43:44 219

原创 LINUX-网络编程I/O多路复用篇

I/O模型在UNIX/LINUX下主要有以下四种I/O模型:阻塞I/O:最常用非阻塞I/O:可防止进程阻塞在I/O操作上,需要轮询I/O多路复用:允许同时对多个I/O进行控制信号驱动I/O:一种异步通信模式阻塞I/O模式阻塞I/O模式是最普遍使用的I/O模式,大部分程序使用的都是阻塞模式的I/O.缺省情况下,套接字建立后所处于的模式就是阻塞I/O模式.在文件I/O操作和标准I/O操作中提到的很多读写函数在调用过程中会发送阻塞.读操作中的read,re

2022-05-18 15:41:14 144

原创 Qt程序只运行一个实例

Qt程序运行实例过多导致崩溃,此代码可以提示删除上一个运行实例。

2022-02-24 15:15:58 784

原创 Ubuntu虚拟机发生标点符号串位(@~&等符号快捷键被改变)

本机是Ubuntu18.04,使用时发现符号对应发生错误,例如@和”符号对应敲击方式交换等问题解决方法:在虚拟机中按下F8,或者重启虚拟机。如果是笔记本则按下Fn+F8组合键。

2021-08-17 10:45:35 440

原创 数据结构-双向循环链表(实现增,删,改,查)

循环链表

2021-07-12 19:34:45 229

原创 Ubuntu 18.04 多个控制台切换快捷键

Ubuntu 18.04中Alt+Tab键无法在控制台中实现切换查询后发现Alt + `可以切换现转载文章出处ubuntu 18.04多应用窗口切换的快捷键使用指南文章地址:https://www.cnblogs.com/dylancao/p/11808403.html

2021-04-22 11:01:11 617

原创 LINUX-C语言实现十进制转二,八,十六进制

代码分享进制转换(二进制,八进制,十六进制)效果展示进制转换(二进制,八进制,十六进制)#include <string.h>#include <stdio.h>#define N 32int temp[N]={0};void fun2(int num){ memset(temp,0,sizeof(temp)); int i=N-1; while(num/2!=0){ temp[i--]=num%2; num/=2; } temp[i]=num%

2021-04-22 10:15:17 561

原创 嵌入式-ARM学习(一)

ARM有哪些工作模式?ARM共有七种工作模式用户模式(User)非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果又异常发生,处理器会自动切换工作模式。FIQ模式 (FIQ)快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。IRQ模式 (IRQ)普通中断模式,当一个低优先级(normal)中断产生时将会进入这种模式。在这种模式下按中断的处理器方式又分为.

2021-03-02 16:39:05 440

原创 嵌入式-利用keil-arm和proteus仿真实验(LED闪烁)

本次实验选择ARM(LPC2124)打开keil创建新工程在project中选择new uVision project…更改文件位置,点保存选择ARM型号keil会自动生成启动代码startup.s选择NXP(founded by Philips)的LPC2124添加源文件,编写程序test.c#include "LPC21xx.h"void delay(void){ unsigned volatile long i,j; for(i=0;i<60000

2021-03-01 14:43:56 4600

原创 嵌入式-ADS和Proteus安装

ADS安装1、下载ADSv1.2安装.zip,点击setup.exe,然后next。2、选择yes3、更改安装目录4、选择typical经典安装5、选择程序文件夹,直接默认neat就行。6、选择有关文件类型,默认为全选择,点击next。7、安装完毕在百分百的情况下可能会卡顿,此时找到我们安装路径中的bin里面的licwizad.exe,打开直接安装证书。8、选择默认安装目录,找到ADSv1.2安装.zip中的crack中的licence.bat。默认下一步则安装完成。9.

2021-03-01 13:35:12 1344 5

原创 C语言易错知识小点总结

C语言中位运算符和逻辑运算符所表示的含义符号含义栗子%取模运算5 % 2 = 1/取余运算5 / 2 = 2|按位或运算二进制1 | 1 = 11 | 0 = 10 | 1 = 10 | 0 = 0&按位与运算二进制0 & 0 = 0 0 & 1 = 01 & 0 = 01 & 1 = 1^按位异或运算二进制0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0&

2020-12-10 17:42:05 252

原创 LINUX-网络编程UDP编程篇

UDP编程对于UDP编程,我们首先需要掌握的是下图中的内容,对于编程时服务器和客户端分别需要实现的功能.它是一种面向无连接的传输协议,何为面向无连接,就是在传输数据的时候,不需要判断是否与服务端建立连接就可发送数据,对方是否成功接收并不知情。这样就导致在传输的时候安全性较差,无法保证数据准确抵达,但在传输数据的效率上会稍微快一点。头文件以下是本次编程过程中需要用到的头文件以及宏定义net.h#ifndef _NET_H#define _NET_H#include<stdio.h

2020-12-10 15:29:58 326

原创 LINUX-网络编程TCP编程篇

头文件以下是本次编程过程中需要用到的头文件以及宏定义net.h#ifndef _NET_H#define _NET_H#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#incl

2020-12-09 17:04:51 256

原创 LINUX-网络编程常用函数介绍篇

socket()函数#include <sys/types.h>#include <sys/socket.h>int socket(int domain, int type, int protocol);成功时返回文件描述符,失败时返回EOFdomain:指定一个通信域;这个选择用于通信的协议系列。type:选择sock的类型protocol:一般为0(原始套接字时需填充)bind()函数#include <sys/types.h>#includ

2020-11-24 11:49:24 837

原创 LIUNX-网络编程基础篇

网络编程网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。网络发展历史和分层网络(Internet)- 来源于“冷战”时期1957/10/11:前苏联两颗“Sputnik”卫星先后上天1958:美国总统艾森豪威尔向美国国会提出建立DARPA(国防部高级研究计划署),简称ARPA1968/6:DARPA提出“资源共享计算机网络”,

2020-11-22 15:10:57 295

原创 LINUX-并发程序设计System V IPC篇

System V IPCIPC对象包含:共享内存,消息队列和信号灯集每个IPC对象有唯一的IDIPC对象创建后一直存在,直到被显式地删除每个IPC对象有一个关联的KEYipcs/ipcrmftok(file to key)#include<sys/types.h>#include<sys/ipc.h>key_t ftok(const char *path,int proj_id);成功时返回合法的key值,失败时返回EOFpath:存在且可访问的文件的路径

2020-11-16 21:36:31 119

原创 LINUX-并发程序设计进程间通信篇

进程间通信方式无名管道特点无名管道创建

2020-11-12 17:50:10 217

原创 LINUX-并发程序设计线程篇

线程的概念进程进程有独立的地址空间Linux为每个进程创建task_struct每个进程都参与内核调度,互不影响线程进程在切换时系统开销大很多操作系统引入了轻量级进程LWP同一进程中的线程共享相同地址空间Linux不区分进程,线程(均会创建task_struct)线程的特点通常线程指的是共享相同地址空间的多个任务使用多线程的好处大大提高了任务切换的效率避免了额外的TLB & cache的刷新线程共享资源线程私有资源可执行的指令线程

2020-11-11 13:45:29 446 2

原创 LINUX-并发程序设计进程篇

https://img-my.csdn.net/uploads/201203/13/0_1331619249llz4.gif

2020-11-08 16:56:50 439

原创 LINUX-静态库和共享库的创建及其使用

库的概念库是一个二进制文件,包含的代码可被程序调用库有源码,可下载后编译;也可以直接安装二进制包eg:标准C库,数学库,线程库,。。。。Linux存放路径:/lib 或 /usr/lib库是事先编译好的,可以复用的代码在OS上运行的程序基本上都要使用库。使用库可以提高开发效率Windows和Linux下库文件的格式不兼容Linux下包含静态库和共享库静态库编译(链接)时把静态库中相关代码复制到可执行文件中程序中已包含代码,运行时不再需要静态库程序运行时无需加载库,运行速度更快

2020-11-05 16:04:39 634 3

原创 LINUX-文件I/O操作

万物皆文件文件的概念和类型文件:一组相关数据的有序集合文件类型:类型标识符常规文件r目录文件d字符设备文件c块设备文件b管道文件p套接字文件s符号链接文件l不同操作系统支持文件不一文件I/O文件I/O:由POSIX(可移植操作系统接口)定义的一些函数无缓冲,每次读写操作都引起系统调用特点:核心概念是文件描述符可访问各种类型文件标准I/O基于文件I/O实现文件描述符每个打开的文件都对应一个文.

2020-11-04 20:58:58 555

原创 LINUX-标准I/O操作

万物皆文件文件的概念和类型文件:一组相关数据的有序集合文件类型:类型标识符常规文件r目录文件d字符设备文件c块设备文件b管道文件p套接字文件s符号链接文件l不同操作系统支持文件不一如何理解标准I/O标准I/O:由ANSI C标准定义的一些用于输入输出的函数主流操作系统上都实现了C库特点:标准I/O通过缓冲机制减少系统调用,实现更高的效率流(FILE)的含义流:FILE结构体(标准I/O用一个结构体类型.

2020-11-04 14:14:55 341

原创 数据结构-线性表(链式-单)

线性表的基本操作线性表是最常用且最简单得一种数据结构。简言之,一个线性表是n个数据元素得有限序列。顺序存储实现typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;例:linklist.h//linklist.h#ifndef __LINKLIST_H__#define __LINKLIST_H__#include<stdio.h>

2020-11-03 13:22:59 57

原创 数据结构-线性表(顺式实现 增 删 改 查)

线性表的基本操作顺序存储实现#define N 100 //线性表的最大长度 typedef int data_ttypedef struct{ data_t data[N]; //表的存储空间 int last; //当前表尾指针}sqlist_t,*sqlink_t; //顺序表类型顺序表操作-创建sqlink_t L;L = (seqlist_t *)malloc(sizeof(seqlist_t));L->last=-1;例://seqlist.h#i

2020-11-01 14:38:38 555

原创 LINUX-Makefile的创建和使用

Makefile的创建和使用Makefile基本结构Makefile格式target : dependency_files <TAB> commandeg:test.o:test.c test.h gcc -c hello.c -o hello.oMake使用首先新建一个以Makefile为名称的文件(首字母大小写皆可)输入代码后直接运行make或者加选项运行-f:指定“makefile”文件;-i:忽略命令执行返回的出错信息;-s:沉默模式,在执行之前不

2020-10-17 17:45:45 2586

原创 LINUX-C语言(关于GCC编译流程中的四个步骤:预处理,编译,汇编,链接和GDB的使用)

基础GCC的编译流程分为四个步骤:1. 预处理(Pre-processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Linking)gcc -E test.c -o test.ivi test.igcc -S test.i -o test.svi test.sgcc -C test.s -o test.ofile test.ogcc test.o -o test -lm./test...

2020-10-16 19:06:27 602

原创 虚拟机安装与Ubuntu系统的装载教程

VMware和Ubuntu的下载与安装VM下载与安装Ubuntu下载与安装VM下载与安装进入VMware官网(https://www.vmware.com/cn.html),根据操作系统选择合适的产品,下载最新版进行安装。详细步骤如图所示。进入官网点击下载向下翻至这里点击下载产品根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载在1处可以选择版本,默认为最新版本。选择好版本后点击2处立即下载,下载速度很慢的话,建议科学上网这里以vmware15.0.2 pro作

2020-10-15 20:49:22 362

原创 C语言编程浅析(三)

代码分享三角形判断并计算面积字符串比较(strncmp)逆序输出数组输出素数表选择排序直接插入排序三角形判断并计算面积#include<stdio.h>#include<math.h>int judge(float,float,float);//判断是否为三角形void count(float,float,float);//用秦九韶公式计算三角形面积int main(){ float a,b,c; puts("请输入三角形三边(中间用空格隔开):"); scanf(

2020-10-15 16:28:27 68

原创 C语言编程浅析(二)

代码分享获取文件扩展名计算字符串长度(strlen)简易计算器解决输入产生的垃圾字符(缓存区中)静态本地变量开方算术快速排序联合(union)冒泡排序判断两个字符串大小(strcmp)求最小公倍数去掉字符串的空格任意位置插入获取文件扩展名#include<stdio.h>char *getFileExtName(char *filename);int main(){ char *p,a[255]; gets(a); p=getFileExtName(a); if(*p!='\0'

2020-10-15 16:17:26 73

原创 C语言编程浅析(一)

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2020-10-15 16:04:48 264

原创 LINUX-SHELL编程浅析(一)

基础代码分享一级目录二级目录三级目录一级目录二级目录三级目录

2020-10-15 15:45:38 112

原创 LINUX-SHELL基础

SHELL基础位置变量字符串整数文件位置变量$0 与键入的命令行一样,包含脚本文件名$1,$2,......$9 分别包含第一个到第九个命令行参数$# 包含命令行参数的个数$@ 包含所有命令行参数:“$1,$2,......$9”$? 包含前一个命令的退出状态$* 包含所有命令行参数:“$1,$2,......$9”$$ 包含正在执行进程的ID号字符串s1 = s2 测试两个字符串的内容是否完全一致s1 != s2 测试两个字符串的内容是否有差异-z s1 测试s1

2020-10-14 22:09:57 85

Linux下的网络编程项目-在线词典(采用seqlite3数据库)

程序可能涉及的知识点包括如下内容:数据库访问、文件操作、协议设计、客户端算法、服务器算法、多进程、回调函数; 客户端算法:在客户端我们提供了登录,注册,查询,搜索记录的功能,方便我们的客户的使用。 服务器算法:在服务器中,我们设置了响应客户端中的各种功能,通过服务器算法,实现了将我们的用户输入我们的数据库中,实现了查询单词的核心算法以及查询搜索历史记录。

2021-07-16

Linux下的网络编程项目-文件服务器(采用seqlite3数据库)

本项目在Linux操作系统下实现多进程并发服务器,采用sqlite3数据库,主要功能有用户注册登录,文件上传下载。 服务器端可自动搜索本机IP地址,提供更好的交互性,具有良好的差错检测,完善的协议信息,支持多个客户端同时连接,支持不同用户同时登录。 客户端和服务器分别位于两个不同的文件夹,此项目运行需要Linux操作系统安装sqlite3数据库,在编译运行时需添加库。

2021-07-16

仿真实验(LED闪烁).zip

嵌入式-利用keil-arm和proteus仿真实验(LED闪烁) 本次实验选择ARM(LPC2124)

2021-03-01

ADSv1.2安装.zip

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。

2021-03-01

phpStudy所需运行库.zip

解决phpstudy无法运行 PhpStudy国内12年老牌公益软件,集安全,高效,功能与一体,已获得全球用户认可安装,运维也高效。 支持一键LAMP,LNMP,集群,监控,网站,FTP,数据库,JAVA等100多项服务器管理功能。

2021-02-28

空空如也

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

TA关注的人

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