- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 U盘里的文件夹以应用程序的方式出现-文件夹伪装病毒
首先,文件没有丢失,只是被隐藏了。在打印店等复杂场所,常会遇见U盘中的文件夹编程了.exe的可执行文件,无法打开文件,关键时候,总干坏事儿。这种病毒即常见的文件夹伪装病毒。找回方法: 鼠标右键点选U盘盘符,选择打开U盘后,在菜单栏找到工具菜单----选择文件夹选项----选择查看文件夹----然后选择显示被隐藏文件---取消隐藏系统文件----取消隐藏已知文件的扩展名。这样就可看到被病毒隐藏的文件夹。将带有.exe的文件夹仿冒者删除(实际上就是个病毒程序) 即可。...
2020-06-08 19:06:05
1218
原创 联想F360移动硬盘拆解
USB2.0的320GB移动硬盘,由于个人不注意将这块移动硬盘的接口搞坏掉了,所以就想着拆除看看里面是什么构造,顺便看看有什么办法修复。网上搜了个底朝天没找到相关拆解技巧,花了好一番功夫,终于拆解完成,特做此记录。拆解时,可以指甲或专业的拆解片从边上开始向里稍微划下,然后扩大缝隙,可以多试几个位置,有些地方好开一点。如我这个在这个位置好开一点拆开后的图片:好了,大工告成,比想象...
2020-03-17 14:10:25
7459
原创 ubuntu修改ip地址
在ubuntu中修改ip地址路径:/etc/network/interfaces查看网卡信息:ifconfig1、动态分配。root权限打开interfaces,进行相应修改,如对ens38网卡改为ip地址动态分配2、静态分配。对ens38网卡ip地址改为静态分配修改后重启网卡:重启后查看修改结果:...
2020-03-13 19:06:38
4924
原创 Windows下配置VS code C语言环境
1、下载安装VS code2、下载MinGW-w64。https://sourceforge.net/projects/mingw-w64/files/电脑系统64位,选择x86_64,32位选择i686。其中seh性能好,但是不支持32位。32位中dwarf性能优于sjlj...
2020-03-11 23:00:06
1234
原创 海康威视嵌入式BSP笔试
1、若进栈序列为1,2,3,4,进栈的过程中可以出栈,则下列不可能的一个出栈序列是()A、3,4,2,1 B 3,1,4,2 C 1,4,3,2 D 2,3,4,1答案:B析:栈空间是先进后出,后进先出。B选项,3若要先出,则栈中肯定有,3,2,1三个,因此下一个出栈的只能是2或者4。2、采用链表的方式完成队列的插队和出队,参阅下述结构体:typedef st...
2020-03-06 20:39:43
3456
原创 Linux中进程查看命令:ps
使用ps命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。参数:-A :所有的进程均显示出来,与 -e 具有同样的效用; -a : 显示现行终端机下的所有进程,包括其他用户的进程; -u :以用户为主的进程状态 ; x :通常与 a 这个参数一起使...
2020-02-28 22:12:49
241
原创 typedef使用
在C中定义一个结构体类型要用typedef:typedef struct Student{ int a;}Stu;于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)这里的Stu实际上就是struct Student的别名。Stu==struct Student另外这里也可以不写Student(于是也不...
2020-02-28 20:01:45
116
原创 vim使用技巧
复制终端内容至vim方法:1、终端复制内容到系统粘贴板使用键盘在鼠标选中内容后,按下如下键:ctrl + insert按下以上两个按键。注意:insert键就是键盘上的插入键2、从系统粘贴板粘到vim 。打开一个新的文档,然后按下如下两个按键。shift + insert...
2020-02-28 19:50:03
114
原创 C语言关键细节
操作系统:操作系统的意义:简单的功能,简单的硬件设备才会裸机开发。复杂性的产品裸机开发难度大,资源无法的到合理高效运用,会选择基于操作系统来开发。作用:用来有效地管理资源,让资源得到合理有效的应用,提高产品性能。管理的资源:CPU管理、内存管理、任务(进程)管理、文件管理和I/O设备管理程序调试:手段:单步调试、硬件调试、打印信息、日志文件调试版本(DEBUG)和发行版本(...
2020-02-28 18:19:50
143
转载 孤儿进程与僵尸进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再创建新的...
2020-02-27 21:51:30
184
原创 C语言简单编程
输入一个字符串,倒序输出:#include <stdio.h>int main(){ char *ch; char a; int i = 0; char b[100]; char *p = b; puts("输入字符倒叙输出,输入'#'结束:"); while(scanf("%c",p)&&(*p != '#')) { p++; i+...
2019-11-06 15:21:39
199
原创 链表
单链表:#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define DEBUG 1//头指针+头结点为整个链表的起始 struct node{ int value; char *c; struct node *pnext;};struct node * create_...
2019-10-29 11:19:32
964
原创 awk工具的一个用例
line = 'awk'($0 !~ /^#/ && $7 ~ /^'"$2"'$/){print $1 ,$2,$3,$3,$4,$5,$6,$7,$8}' $srctree/boards.cfg;'这段shell脚本实现的功能是,在$srctree/boards.cfg文件中逐行查找和表达式($0 !~ /^#/ && $7 ~ /^'"$2"'$/)中...
2019-10-19 09:41:26
306
原创 Linux内存映射机制
MMU(内存管理单元),它的作用1.它负责虚拟地址到物理地址的转换2.提供硬件机制的内存访问权限检查没有启动或者没有MMU时,外设(包括物理内存)等所有部件使用的都是物理地址,cpu通过物理地址来访问外设(包括物理内存)。启动MMU后,CPU核心对外发出虚拟地址给MMU,MMU把虚拟地址转换为物理地址,最后使用物理地址读取实际设备虚拟地址转换为物理地址的方法:1.确定的数学公式...
2019-04-24 21:13:27
2307
1
原创 Linux内核同步
解决的问题: 进程A和进程B同时对 XXX(共享资源)进行操作,会产生竞争行为解决方法: 保证对共享资源的互斥访问(一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问) 访问共享资源的代码区块叫做“临界区”,临界区需要以某种互斥机制加以保护:自旋锁、信号量(进程)等linux内核中可能引起互斥访问的情形:1.进程和进程之间...
2019-04-24 19:47:41
170
原创 64位ubuntu14.04LTS安装arm-gcc-linux交叉编译环境的问题解决
问题:安装过后,输入arm-linux-gcc -v显示command not found解决:sudo apt-get install libc6:i386 sudo apt-get install lib32z1
2018-11-28 17:17:21
327
原创 Samba服务器的搭建
第一步:安装samba服务。sudo apt-get install samba第二步:修改配置文件(ubuntu下的samba配置文件“/etc/samba/smb.conf”)[my_share] comment = share path = /home/binge/share writable = yes browseable = yes第三步:添加samba用户并设置新...
2018-11-27 22:18:53
184
原创 ARM汇编(第四天)混合编程
混合编程(汇编与高级语言如C、C++的混合编程)---C语言嵌入汇编---C语言调用汇编---汇编调用C语言 ------实例:功能:数据复制void my_strcpy(char *src,char *des){ char ch; __asm{ loop: LDRB ch,[src],#1 STRB ch,[des],#1 CM...
2018-11-18 10:21:21
383
原创 ARM汇编(第三天)伪指令
伪指令:类似于带参数的宏一样的操作,方便我们更好的实现汇编程序逻辑。 伪指令只在汇编器之前作用,汇编之后会翻译为标准的汇编指令集。伪指令分类:ARM汇编伪指令、GNU汇编伪指令伪指令类别:1、一个总结的不错的Blog(此处省略好多字,点击跳转)符号定义(Symbol Definition)伪指令数据定义(Data Definition)伪指令汇编控制(As...
2018-11-17 20:54:16
309
原创 ARM汇编(第二天)
汇编指令跳转的方式:方式一:MOV LR ,PCMOV PC,Dest方式二: MRS:move to register from status registerMRS R0,CPSR ARM中的程序状态寄存器(CPSR)程序状态寄存器CPSR AREA test,CODE,READONLY ENTRY CODE32START MOV...
2018-11-17 15:19:05
160
原创 ARM汇编(第一天)
ARM指令格式:operation{cond}{s} Rd ,Rn, operand2操作指令{条件}{状态} 目标寄存器,源寄存器,后续附件的操作{}:可选项如:ADD R2,R1,#100; 功能:R2 = R1 + 100ARM的9种寻址方式一个简单的汇编程序: AREA testhello,CODE,READONLY ENTRY CODE32ST...
2018-11-16 20:48:36
248
原创 Cortex-A8处理器之寄存器(处理器内部寄存器)
ARM指令下,八种模式下寄存器的分布:a.其中R0~R12是32bit通用寄存器,放通用数据b.各个模式的R0~R12J寄存器与USR模式是共享的(除了FIQ,R8~R12),PC、CPSR是共享的c.USR模式没有SPSR。CPSR:(Current program status register)当前程序状态寄存器SPSR:(saved programstatus regist...
2018-11-15 20:37:36
3061
原创 组播编程
1、组播IP地址范围:224.0.0.0 ~ 239.255.255.255 组播以太网地址(MAC地址):开头高三个字节是01:00:5e2、组播分为两部分: 组播数据流:目的 组播控制流:(IGMP)分三种报文:report(join),leave,query3、组播编程 client:1、IP_MULTICAST_LOO...
2018-11-11 18:02:53
2163
原创 广播编程
1、IPv4地址的表示(子网id , 主机id) -1 表示所有为都为1的字段2、子网广播地址(子网id , -1)如子网IPv4地址:10.21.12.13 则子网广播地址:10.21.12.2553、受限广播地址( - 1 , - 1) 255.255.255.255socket套接字属性设置选项:参考socket选项https://blog.csdn.net/c1520006273...
2018-11-08 18:39:37
520
原创 并发服务器 — —TCP服务器(epoll)
1、创建epoll对象:int epoll_create(int size);2、往epoll对象中增加/删除某一个流的某一事件:epoll_ctl int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);3、等待直到注册的事件发生:epoll_wait int epoll_wait(int ...
2018-11-04 22:32:06
505
1
原创 并发服务器 — — I/O复用(select)
简单通过select函数实现I/O复用完成并发服务器的编写:功能:将select函数运用在服务器中,实现I/O复用#include<stdio.h>#include<string.h>#include<errno.h>#include<unistd.h>#include<sys/times.h>#include<...
2018-11-01 21:25:06
1076
原创 TCP服务器
创建步骤:1、使用socket()函数创建socket;int socket(int domain, int type, int protocol);RETURN VALUE On success, a file descriptor for the new socket is returned. On error, -1 is ...
2018-10-27 16:08:42
217
原创 linux进程高级属性之安全的fork
安全性问题: 当线程调用fork函数时,就为子进程创建了整个进程地址空间的副本,子进程通过继承整个地址空间的副本,也会将父进程的互斥量、读写锁、条件变量的状态继承过来。也就是说,如果父进程中互斥量是锁着的,那么在子进程中互斥量也是锁着的(尽管子进程自己还没有来得及lock),这是非常不安全的,因为不是子进程自己锁住的,它无法解锁。解决办法: int pthread_at...
2018-10-21 22:25:36
411
原创 linux线程高级属性之私有数据
应用程序设计中有必要提供一种变量,使得多个函数多个线程都可以访问这个变量,但是线程对这个变量的访问都不会彼此产生影响。这种数据就是线程的私有数据,尽管名字相同,但是每个线程访问的都是数据的副本。如何创建私有数据1、在使用私有数据之前,你首先要创建一个与私有数据相关的键,用来获取对私有数据的访问权限 。int pthread_key_create(pthread_key_t *key,...
2018-10-21 21:10:13
342
原创 linux进程高级属性之同步属性
一、互斥量的属性(进程共享属性和类型属性)//互斥量初始化 int pthread_mutexattr_init(pthread_mutexattr_t *attr);//互斥量销毁 int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); >进程共享属性: 进程共享属性有两种值: ...
2018-10-21 20:02:22
1639
1
原创 linux之线程的高级属性
一次性初始化:用途: 有些事需要且只能执行一次(比如互斥量初始化)。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库函数时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始(pthread_once_t)会比较容易些。用法: //首先要定义一个pthread_once_t变量,这个变量要用宏PTHREAD_ONCE_INIT初始化。//然后...
2018-10-18 20:17:00
356
原创 C语言调试与发行版本--预处理的应用
1、条件预处理在发行版本中有些调试用到的东西不愿意被使用者看到,但又不能因此编写两套程序代码。此时就可以使用条件预处理来实现,具体如下代码所示:/************************************************************************* > File Name: newpro.c > Author: 17104003...
2018-10-17 15:59:27
175
原创 运算符---补码、内存访问
逻辑运算 !逻辑取反(真假)位运算 ~按位取反(0、1)计算机存储负数实际存的是负数的补码(即除符号位之外的每一位取反加一)负数(8bit:):-1原码: 1000 0001取反: 1111 1110加一: 1111 1111(补码)内存访问符号():限制符 (a+b)*c [ ]数组:内存访问的符号-> , ....
2018-10-17 15:58:39
180
原创 C语言函数的使用
标签:函数名一、函数具备三要素:1、函数名 (地址)2、输入参数3、返回值二、如何用指针保存函数:指针保存数组:char(*)[10];指针保存函数:int (*p)(int,int,char);#include<stdio.h>int main(){ int (*myshow)(const char *,...); printf("print...
2018-10-17 15:48:38
523
原创 C语言内存分布图----栈空间、堆空间
----------------------------------------------------------- 4G(0xffff ffff)内核空间 应用程序不许访问------------------------------------------------------------ 3G栈空间 ...
2018-10-17 15:48:08
7245
原创 C语言结构体 ---字节对齐
1、字节对齐 目的:牺牲一点空间,换时间的效率(CPU执行效率) 最终结构体大小一定是4的倍数(32bit系统) 结构体里成员变量顺序不一致,也会影响结构体的大小数据类型 32位机大小(字节) 64位机大小(字节) char 1 1 short 2 2 int 4 4 lon...
2018-10-17 15:47:55
478
原创 C语言编程之指针
在32bit系统中,指针就4个字节指针指向内存空间,一定要保证合法性(段错误)修饰符:const、voliatile、typedefconst:const char *p 只读(指向地址可变,指向地址的内容只读)char * const p 指向固定地址,但指向地址的内容可变(硬件资源关系大)const ...
2018-10-17 15:47:44
645
原创 C语言函数之输入参数
输入参数:承上启下的作用调用者:函数名(要传递的数据) //实参被调者:函数的具体实现函数的返回值 函数名(接收的数据) //形参{。。。。}实参 传递给 形参传递形式:逐一拷贝值传递典型错误:#include<stdio.h>void swap(int a,int b){ int c; c = a; ...
2018-10-17 15:47:05
4641
原创 C语言之类型修饰符
auto默认修饰符register:register int a; //限制变量定义在寄存器上的修饰符用于定义一些快速访问的变量 编译器会尽量的安排CPU的寄存器去存放这个a,如果寄存器不足时,a还是放在存储器中 取地址符&对register不起作用内存(存储器); 寄存器寄存器在cpu中,数据存储其中访问速度很快数据放在存储器(内存)中,访问速度相...
2018-10-17 15:46:13
1877
转载 ubuntu中的解压指令
tar 解压缩命令详解-c: 建立压缩文件-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准...
2018-10-17 15:45:03
833
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人