- 博客(32)
- 资源 (5)
- 收藏
- 关注
原创 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
195
原创 Ubuntu虚拟机发生标点符号串位(@~&等符号快捷键被改变)
本机是Ubuntu18.04,使用时发现符号对应发生错误,例如@和”符号对应敲击方式交换等问题解决方法:在虚拟机中按下F8,或者重启虚拟机。如果是笔记本则按下Fn+F8组合键。
2021-08-17 10:45:35
636
原创 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
675
原创 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
698
原创 嵌入式-ARM学习(一)
ARM有哪些工作模式?ARM共有七种工作模式用户模式(User)非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果又异常发生,处理器会自动切换工作模式。FIQ模式 (FIQ)快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。IRQ模式 (IRQ)普通中断模式,当一个低优先级(normal)中断产生时将会进入这种模式。在这种模式下按中断的处理器方式又分为.
2021-03-02 16:39:05
636
原创 嵌入式-利用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
5015
原创 嵌入式-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
1785
6
原创 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
284
原创 LINUX-网络编程UDP编程篇
UDP编程对于UDP编程,我们首先需要掌握的是下图中的内容,对于编程时服务器和客户端分别需要实现的功能.它是一种面向无连接的传输协议,何为面向无连接,就是在传输数据的时候,不需要判断是否与服务端建立连接就可发送数据,对方是否成功接收并不知情。这样就导致在传输的时候安全性较差,无法保证数据准确抵达,但在传输数据的效率上会稍微快一点。头文件以下是本次编程过程中需要用到的头文件以及宏定义net.h#ifndef _NET_H#define _NET_H#include<stdio.h
2020-12-10 15:29:58
411
原创 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
309
原创 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
971
原创 LIUNX-网络编程基础篇
网络编程网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。网络发展历史和分层网络(Internet)- 来源于“冷战”时期1957/10/11:前苏联两颗“Sputnik”卫星先后上天1958:美国总统艾森豪威尔向美国国会提出建立DARPA(国防部高级研究计划署),简称ARPA1968/6:DARPA提出“资源共享计算机网络”,
2020-11-22 15:10:57
328
原创 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
181
原创 LINUX-并发程序设计线程篇
线程的概念进程进程有独立的地址空间Linux为每个进程创建task_struct每个进程都参与内核调度,互不影响线程进程在切换时系统开销大很多操作系统引入了轻量级进程LWP同一进程中的线程共享相同地址空间Linux不区分进程,线程(均会创建task_struct)线程的特点通常线程指的是共享相同地址空间的多个任务使用多线程的好处大大提高了任务切换的效率避免了额外的TLB & cache的刷新线程共享资源线程私有资源可执行的指令线程
2020-11-11 13:45:29
545
2
原创 LINUX-并发程序设计进程篇
https://img-my.youkuaiyun.com/uploads/201203/13/0_1331619249llz4.gif
2020-11-08 16:56:50
530
原创 LINUX-静态库和共享库的创建及其使用
库的概念库是一个二进制文件,包含的代码可被程序调用库有源码,可下载后编译;也可以直接安装二进制包eg:标准C库,数学库,线程库,。。。。Linux存放路径:/lib 或 /usr/lib库是事先编译好的,可以复用的代码在OS上运行的程序基本上都要使用库。使用库可以提高开发效率Windows和Linux下库文件的格式不兼容Linux下包含静态库和共享库静态库编译(链接)时把静态库中相关代码复制到可执行文件中程序中已包含代码,运行时不再需要静态库程序运行时无需加载库,运行速度更快
2020-11-05 16:04:39
793
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
641
原创 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
382
原创 数据结构-线性表(链式-单)
线性表的基本操作线性表是最常用且最简单得一种数据结构。简言之,一个线性表是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
82
原创 数据结构-线性表(顺式实现 增 删 改 查)
线性表的基本操作顺序存储实现#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
639
原创 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
2752
原创 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
703
原创 虚拟机安装与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
464
原创 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
97
原创 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
106
原创 C语言编程浅析(一)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例
2020-10-15 16:04:48
360
原创 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
106
Linux下的网络编程项目-在线词典(采用seqlite3数据库)
2021-07-16
Linux下的网络编程项目-文件服务器(采用seqlite3数据库)
2021-07-16
ADSv1.2安装.zip
2021-03-01
phpStudy所需运行库.zip
2021-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人