- 博客(32)
- 收藏
- 关注
转载 指针的运用熟悉
// 6_9.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<stdio.h>#include<stdlib.h>float *show(int a,float (*arr1)[4])//指针函数{ /*float *pt=NULL; pt=*(arr1+a);*/ return *(arr1+a);};int Max(int a,int b){ return a>b?a
2020-12-01 23:02:46
99
原创 Xshell7 ubuntu连接
步骤:一 · ubuntu下安装openshell - sudo apt-get install openssh-server二 ·
2020-10-21 10:12:22
744
原创 SVN冲突处理
Edit confilicts:修改冲突,可以对冲突进行内容选择Mark as resolved:直接标记为已解决,只是状态解决,实际冲突未解决Mine表示当前版本Use this test block: 表示使用这行代码Use this whole file: 表示使用这个文件作为合并后的文件Use text block form 'mine' before 'theirs':两边代码都保留,我的代码在前面Use text block from 'theirs' before 'mine':两
2020-09-17 11:28:35
187
原创 工作Ubuntu中使用工具记录
bushound:LINUX下bushond挂载:2)的USB抓包工具:usb_mon其实,Ubuntu下已经内置了USB抓包工具—USB_MON【其实 make menuconfig 时候会让我们选择的】使用方法如下:# mount -t debugfs none /sys/kernel/debug //这就输入会直接回报 usb busy,可以不输入这句,直接输入下一句# modprobe usbmon查看当前的USB device:# cat /sys/kernel/debug
2020-09-15 14:41:05
269
原创 Lambda表达式(匿名函数)
Lambda表达式(匿名函数)使用场景:有时写的代码在怎个代码中只会用到一次,就再也没地方调用了。可用匿名函数代替。普通函数:int test_function(int a){ return a+b;}匿名函数:[](int a)->int //int a,传入参数, ->int代表int类型的返回值{ return a;}(100); //()代表调用, 100代表传入参数,匿名函数只调用1次,所以立马调用例:int count = [](int a
2020-09-10 22:15:09
186
原创 线程同步
Linux_learn/pthread/pthread.c 执行代码可以发现最后num值小于10000.数据混乱原因如下图:混乱原因:操作了共享资源CPU调度问题解决:线程同步线程同步思想
2020-08-23 16:32:33
125
原创 设置线程分离
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);调用此函数创建线程时即可设置线程分离。设置步骤如下设置步骤:先定义线程属性类型phread_attr_t attr;线程属性操作初始化线程属性:int pthread_attr_init(pthread_attr_t *attr)设置线程分离属性:int pt
2020-08-23 15:36:46
413
原创 信号
特点:简单携带信息量少用于某种特定的场景信号状态:产生未决 —产生但未处理抵达----传输到相关进程,并处理信号集(位于pcb中不能直接操作):阻塞信号集:放置的是要屏蔽的信号未决信号集:没有被处理的信号给某个进程发送信号, kill -l 可以查看sigint kill(pid_t pid, int sig);自己给自己发信号int raise(int sig);自己给自己发一个SIGABRT信号void abort(void)闹钟,当时间会发送一个SIGALRM给调用该
2020-08-22 19:53:15
112
原创 C#进阶多态
多态:能让一个对象有多种状态(类型)。实现多态的方法:虚方法在父类中跟子类相同的方法的前面加关键字,父类的加virtual,子类的加override.实现原理:其实还是调用的父类的方法,但是virtual表示此方法可被重写,override表示重写父类方法。最后调用时父类对象中装了什么类型就调用什么类型的虚函数。抽象类抽象类以abstract关键字修饰。抽象成员必须在抽象类中。抽象类中可以有具体成员,但是自己不能使用,供子类调用。子类继承了抽象类,必须要把抽象类中的抽象成员重写,
2020-08-13 22:01:00
170
原创 C#进阶继承
继承单根性: 一个派生类(子类)只能继承一个基类(父类),不能同时继承多个父类。传递性: 基类可以依次继承下去。protected : 受保护的,在有关系的类中可以直接访问,在没关系的类中无法访问。查看类图: Vis鼠标右键 —>视图—>查看类图object: 是所有类的基类特性:子类是只能继承父类的共有属性(public), private关键字修饰的无法继承。构造函数无法继承创建子类对象:先会优先创建一个父类对象再创建子类对象(让子类拥有父类的成员),创建父类对象时默
2020-08-02 16:18:35
274
原创 Vis使用中碰到的问题
链接报错 warning LNK4099: PDB调用第三发库导致mbedTls,没找着mbedTls 的PDB文件,只要不提示有debug信息即可不会有警告,不生产Zi文件即可。查看详情
2020-07-31 10:35:37
450
1
转载 /Z7、/Zi、/ZI(Microsoft调试信息格式)
无不生成任何调试信息,因此编译较快。/Z7生成包含用于调试器的完整符号调试信息的 .obj 文件。 符号化调试信息包含变量的名称和类型以及函数和行号。 不生成任何 .pdb 文件。对于第三方库的分发服务器,不生成 .pdb 文件是一个优点。 但是,在链接阶段和调试期间,用于预编译头的 .obj 文件是必需的。 如果 .pch 对象文件中只有类型信息(没有代码),则还必须使用 /Yl(为调试库插入 PCH 引用) 进行编译。/Zi
2020-07-31 10:28:22
857
原创 Makefile根基
IDE过程: 预处理 —> 汇编 —> 编译—>链接.makefile是一种脚本语言第一层:显示规则#代表注释目标文件:依赖文件 [TAB]指令 hello.i:hello.c gcc -E hello.c -o hello.igcc编译过程:hello.i:hello.c gcc -E hello.c -o hell.i #预编译 hello.S:hello.i gcc -S hello.i -o hello.S #汇编 hello
2020-07-25 19:28:03
334
原创 C#进阶封装
面向对象:圆可以画在黑板上。黑板上可以被画个园 ==》一般我们把被动(黑板)的作为对象。在代码中描述一个对象,通过描述这个对象的属性(特征)和方法(行为)。万物皆对象(看得见摸得着的,能描述的才行);类:把具有相同属性跟方法的对象提取出来封装在一起就是类。类就是一个模子,确定对象将会拥有的(属性)特征和(方法)行为。类是盖大楼的图纸,对象 是根据图纸盖出来的大楼。语法:public class 类名{ (Field)字段; (Method)属性; (Property)方法;}
2020-07-21 21:58:09
193
转载 hex文件解析
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css"> <div class="htmledit_views" id="content_views"> <h3>&l...
2020-07-21 16:48:41
991
原创 C#基础
方法: 函数完成某个功能的接口,一个方法只能实现一个功能,要保证功能单一。方法结构:public: 公共的,公开的[public] static 返回值类型 方法名(参数列表){// 方法体}方法的调用:如果调用的方法跟被调用的的方法在同一个类中,可以省略被调用方法的类名,直接写方法。类名.方法名(参数);C#中没有全局变量这个东西:用静态字段模拟namespace ConsoleApplication1{ class Program { publi
2020-07-20 21:12:55
113
原创 WIN32 X86 API
nitializeCriticalSectionAndSpinCount当一个线程试图获取一个被锁定的临界区时,它会旋转:它进入一个循环,这个循环会迭代旋转计数次数,检查锁是否被释放。如果在循环结束之前锁没有被释放,线程将进入睡眠状态,等待锁被释放事件对象就像一个开关:它只有两种状态—开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。CreateEvent 打开一个事件对象SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。WaitF
2020-07-20 13:22:02
155
原创 初识C#
C# 语言一.cs后缀结尾.net平台只能跑.NET框架的程序.NET的两种交互模式: C/S 客户机/服务器 B/S 浏览器/服务器屏幕打印输出:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{ class Program {
2020-07-12 20:43:10
287
原创 wait函数使用
wait使用:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>int main(){ pid_t pid = fork(); if(pid == 0) { /* child process*/ printf("child id:%d ppid:%d\n", getpid(),
2020-06-25 11:00:30
872
原创 进程相关概念
程序:二进制代码,存储在磁盘上进程:二进制代码执行后,占内存空间并发(一个CPU):不是某一时刻CPU处理任务的个数,是一个时间段CPU处理的任务个数。一个时刻一个CPU只能执行一个任务。(把某一段时间切为时间片,一个任务执行一个时间片)并行(多个CPU):多个CPU可以在同一时刻同时处理多个任务,...
2020-06-21 17:31:01
88
原创 十进制转与之对应的16进制
int function_to(int lin_id){ int he = lin_id; int re = 0; // 保存转换为10进制的结果zhi int k = 16; // 16进制 int n = 1; // 位权 while (he != 0) { re += (he % 10) * n; // 取出各位位码值,专并乘以对应的位权值 he /= 10; // 去掉16进制数的最低位属,次低位变为最低位 n *= k; // 位权乘以16
2020-06-18 15:52:47
328
原创 VIM
IDE:集成开发环境GUI:图形界面接口VIM:vi系统自带,功能较弱,vim需要安装,功能强大vim帮助手册查看:shell下敲:vimtutor三种模式:命令行:保存退出:ZZ代码格式化:gg=G光标的移动:HJKL 左下上右快速移动到行首:0快速移动到行尾:$快速移动到文件头:gg快速移动到文件尾:G移动到x行:x+G向下跳x行:x+Enter删除光标前字符:x,后:X删除一个单词:d+w删除光标后面:d+¥ / D删除(剪切)光标所在行:dd删除光标一下x
2020-06-13 15:08:39
167
原创 Linux 文件阻塞跟非阻塞
阻塞#include <stdint.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#define SIZE 10int main(){ char temp[SIZE] = " 0 "; if(0 &
2020-06-07 19:10:33
732
原创 Linux 文件操作系统函数进程线程相关
系统函数:调用系统函数,用户空间 -> 内核空间系统API:应用层:fopen系统层:open内核:设备驱动函数FILE *fp.fp 为一个结构体的指针,结构体中包含打开文件的各种属性。打开文件 --> 写入IO缓冲区 --> 磁盘虚拟地址空间:程序运行起来后,磁盘上都会有一个虚拟地址空间,在数据处理的时候会通过MMU(内存管理机制)把虚拟地址空间映射到物理内存上进行处理。进程管理:PCB(一个400多行的结构体)进程管理控制块中的文件描述符标,文件描述符表前三
2020-06-07 18:07:59
213
原创 linux 库封装
windowns:.dll 动态库..lib 静态库Linux:.a 静态库.so.1.2 动态库,后面1.2属于库的版本静态库:命名规则:libxxx.a / libxxx.avi -O 文件名 ==》vi打开的文件,垂直分屏,-o 横分屏静态库制作步骤:原材料: .c 文件将 .c 生成 .o 文件gcc -c a.c //生成a.o文件将.o打包ar rcs libxxx.a a.o //用ar工具,打包a.o生成libxxx.a库nm libxxx.a //可以查看静
2020-06-06 21:06:19
665
原创 gcc编译
GCC(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。穿插一个玩笑: GNU意思是GNU’s not Unix而非角马。然而GNU还是一个未拆分...
2020-06-06 18:36:20
206
原创 gdb 常用指令
gdb调试程序需要传入参数:在运行前 set args .....(需要传入的参数)代码查看:l ==》从main函数开始查看代码show listsize ==》显示当前 l 查看代码会显示多少行set listsize 20 ==》 设置 l 显示为20行l 行号 ==》显示该行号的上下文代码l 函数名 ==》查看函数l 文件名:行号l 文件名:函数名断点相关操作:b 行号b 函数名b 文件名:行号b 文件名:函数名i b ==》查看断点编号del 断点编号 ==》
2020-06-06 13:31:25
722
原创 计算机网络
计算机技术 + 网络技术 = 计算机网络技术网络软件:通信协议,信息交换方式,网络操作系统,实现网络共享的工具就是网络软件。面向终端:终端采集数据,全部汇聚到一个中心计算机去处理。(主从关系)计算机 -->计算机:两台计算机相互通信,都有计算能力,不分主从,多台相连就是今天的计算机网络自家电脑只能跟自家电脑互联(封闭式系统)。OSI/ RM—— 开放系统开放系统 互连 参考 模型。...
2019-12-26 15:05:49
457
原创 字节对齐
字节对齐字节对齐是方便处理器,能快速的获取数据,提高CPU速度GNU C的一大特色(却不被初学者所知)就是__attribute__机制内存对齐,往往是由编译器来做的每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。#include...
2019-11-28 15:33:31
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人