![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件
yxiune
好多东西都是之前做过的,都快忘完了,赶紧记录一点,后面再不断补充吧
展开
-
7.2,shell脚本例程
上一文中记录了shell相关的知识点,本文就之前的知识点完成简单的例程:如下:#! /bin/bashecho "hello 你好!"echo //-------字符串,数组---------------------------------#定义字符串str0='abc'str1="${str0}defg123"str=""$str0"${str1}"#输出字符串echo str=$str#输出字符串长度echo "字符串str长度为: ${#str}"#输出子字符原创 2020-10-28 13:44:36 · 196 阅读 · 1 评论 -
7.1,shell脚本知识点
shell脚本 echo : 向窗口输出文本 chmod +x xx.sh 为脚本增加可执行权限 解释器:bash 或php; 在脚本中通过#! /bin/bash 为脚本约定解释器shell变量: 1,定义变量,不加美元符号($),规则如下: (1)命名只能使用英文字母,数字和下划线,首个字符不能以数字开始; (2)中间不能有空格,可以是使用下划线; (3)不能使用标点符号; (4)不能使用b...原创 2020-10-28 13:42:46 · 146 阅读 · 0 评论 -
6,EWF写保护功能介绍与使用
1,EWF介绍 EWF是对系统某个分区提供写保护功能,开启后该分区只读,无法写;2,EWF安装说明: 该处提供工具,一键安装,工具见链接:3,EWF使用 (1)使用工具使能EWF开启写保护功能: a,安装成功后会在右下角有一个锁,现在是未开启状态 b,双击锁进入,如图,然后点下面的configure c: 使能EWF如下图:(先选择分区,然后在pending ...原创 2020-09-25 11:41:36 · 6030 阅读 · 2 评论 -
5,系统启动介绍和BCD编辑
1,系统启动流程 (1)电脑开机后,开始启动BIOS,开始BIOS自检; (2)通过自检后,bios找到硬盘上的主引导记录MBR. (3)MBR开始读取硬盘分区表DPT,找到活动分区,找到活动分区中的分区引导记录PBR,并且把控制权交给PBR (4)PBR搜索活动区中的启动管理器bootmgr,找到后,PBR把控制权交给bootmgr(相当于xp里的ntldr文件) (5)Bootmgr寻找活动分区中的boot文件夹中的BCD文件(启动配置数据,相当于xp里...原创 2020-09-25 11:12:55 · 5567 阅读 · 0 评论 -
4.3 进程的秘密(进程间的通信)
进程间通信 1,无名管道pipe,半双工通信;只能用在有亲缘关系的进程之间通信;使用pipe创建,使用read(),write()进行读写操作;创建pipe管道会创建两个文件描述符fd[0]和fd[1];fd[0]用来读,fd[1]用来写; 2,有名管道fifo,可以在不相干的两个进程之间通信,先进先出;使用mkfifo()创建;文件在文件系统中可见.使用时需要先打开写,后打开读; 3,信号通信.它类似于一个中断,可以在任何时刻到达;函数: pipe(): ...原创 2020-08-21 11:35:38 · 118 阅读 · 0 评论 -
4.2 进程的秘密(几个简单的例程)
根据上文完成如下例程设计:1.创建fork进程,打印进程PID 2.创建vfork进程,打印进程PID 3.创建vfork进程,然后对文件进行不同操作 4.execl,execv函数使用 5.execlp,execvp函数使用 6.execle,execve函数使用 7.wait,waitpid...原创 2020-08-20 15:11:57 · 129 阅读 · 0 评论 -
4.1 进程的秘密(父子进程,exec函数族,守护进程)
父子进程: 1,Linux下创建进程的函数为fork();被创建的进程为子进程,发起创建的进程为父进程;他们共用所有资源.通过创建函数子进程函数fork的返回值区分;PID为0,为子进程,大于0为父进程. 2,子进程创建后,对于fork()的返回值,父进程返回子进程的PID,子进程返回0;通过getpid()可以获取当前进程pid,通过getppid()获取当前进程的父进程的pid. 3,通过vfork()也可创建子进程,与fork()不同的时,fork()是复制父进程的所有资源,v...原创 2020-08-20 15:08:17 · 361 阅读 · 0 评论 -
3.3 线程应用例程之同步互斥
在写UDP和TCP时,最后实现同时收发.使用了多线程操作.但在这个操作中,只使用了最简单的新建,正常退出,强制退出,等待退出等函数完成.接下来的设计中,将主要研究,多线程的数据复用,也就是多线程数据通讯:1,最简单的办法实现线程先后运行,将线程指针定义为全局变量,在线程内使用join,等前一个线程结束.再运行当线程.2,线程间简单通信,最好的方法三定义全局变量.3,线程的同步和互斥(函数): 3.1 锁保护:上锁对线程内的共享资源访问,直解锁,其他没有锁的线程必须等待. ...原创 2020-08-19 16:24:30 · 118 阅读 · 0 评论 -
3.2 线程应用例程之TCP收发
记录(只在此设计中有效): 1,实现TCP服务端时,在客户端连接中断后,支持客户端重新连接。此处我用的死goto,让程序跳回准握手阶段; 2,通过recv返回值为0或-1,判断,socket断开连接,这种做法应该是不合理的。但在此处,我不会发送信号,故可作为简单的判断依据。 3,服务端可以不配置客户端ip,以支持不同设备的连接。在客户端需要配置客户端ip和服务端IP; 4,此处我只用recv做socket断开的判断依据,然后用pthread_canc...原创 2020-08-19 16:19:12 · 191 阅读 · 0 评论 -
3.1 线程应用例程之UDP收发
利用双线程实现UDP收发,主线程等待线程退出,释放资源相关函数 pthread_create(): pthread_join(): pthread_cancel(): pthread_exit() //头文件为<pthread.h> //create创建线程,第一个参数指向线程标记符的指针,第三个为进程函数运行地. //join等待线程接收释放资源 //cancel外部中断线程 /...原创 2020-08-19 16:16:56 · 286 阅读 · 0 评论 -
2.3 Linux下简单实现TCP通信
TCP服务杜端实现: 1,创建socket; 2,配置并绑定地址和端口; 3,启动监听,准备进行三次握手; 4,完成握手; 5,发送,接收; 6,断开连接客户端实现: 1,创建socket; 2,配置并绑定地址和端口; 3,建立连接,进行三次握手; 4,发送接收; 5,断开连接创建socke和绑定地址端口,与UDP相同三次握手 1,服务端监听socket端口; 2,客户端建立连接,发送握手信息;...原创 2020-08-18 17:57:04 · 296 阅读 · 0 评论 -
2.2 Linux下实现简单UDP通信
基于上一文档简单通信,完成回环设计。服务端实现发送数据代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h> #include <arpa/inet.h>#define LOCAL_IP "192.原创 2020-08-13 20:36:46 · 184 阅读 · 0 评论 -
2.1 Linux下实现简单UDP通信
UDP发送实现过程 服务器端: 1,创建socket; 2,配置并绑定地址/端口; 3,与通讯对象建立连接并发送; 4,断开连接 客户端: 1,创建socket; 2,发送数据; 3,断开连接1.创建socket (1)使用socket函数,socket(组,传输类型,协议); (2)组包括: (目前使用AF_INET) AF_INET(IPv4),AF_INET6(IPv6); (3)传输类...原创 2020-08-13 20:31:44 · 417 阅读 · 0 评论 -
1.3 C旅途的起点
在前面学习C并写之前的例程时,遇到如下若干问题,做简单记录: 1,使用gets函数在ubuntu会报警告,然后使用fget函数; 2,乘方函数pow使用的时候编译需要输入-lm, 最后自己写了一乘方函数; 3,将数组传入函数中,使用数组名[]或指针; 4,输入字符之后,需要用getchar读空'\n',不然可能会影响后面的程序; 5,从文件读取字符串,有多行时,使用fgets读取,只能读取一行,通过strlen()读取字符串长度;使用fseek函数将文件指...原创 2020-08-12 19:28:11 · 128 阅读 · 0 评论 -
1.2 C旅途的起点
上一篇中写了学习总结,在这里附上学习一周写的例程和源码。视图如下:源码如下:#include <stdio.h> #include <string.h>#include <stdlib.h>#include <math.h>//****************************例程函数定义*******************************int test_exp1(); int test_exp2(); in原创 2020-08-12 19:01:52 · 147 阅读 · 0 评论 -
1.1 C旅程的起点
做了两年FPGA了,感慨良多。准备做做C,做做Linux,学了两周的c,写了一个简单学习总结C程序主要包含5部分 预处理指令(通过#标识) 函数 变量 语句&表达式 注释(//,或/* */)基本类型占用空间: char : 1个字节 int : 4个字节 float : 4个字节 double : 8个字节关键字(变量) int :整形变量或函数 float : 单精...原创 2020-08-12 18:52:08 · 174 阅读 · 0 评论