05 2019 档案

摘要:sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入, 经过一系列编辑命令转换为另一种格式输出。sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。 sed命令行的基本 阅读全文
posted @ 2019-05-30 18:10 狂奔~ 编辑
摘要:#include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "includes.h" //任务1控制块 OS_TCB Task1_TCB; void task1(void *parg); CPU_S 阅读全文
posted @ 2019-05-30 17:20 狂奔~ 编辑
摘要:一,前后台系统和RTOS 1,前后台系统 早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统。 简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序: 应用程序是一个无限循环 阅读全文
posted @ 2019-05-30 11:39 狂奔~ 编辑
摘要:一,概述 二,信号概念 三,24C02 1.地址 2,写数据是时序图 3,读数据时时序图 #include <stdio.h> #include "stm32f4xx.h" #include "sys.h" #include "string.h" static GPIO_InitTypeDef GP 阅读全文
posted @ 2019-05-29 00:05 狂奔~ 编辑
摘要:一,定义 数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。 缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 二,单机与多机通信 1,单机通信 2,多机通信 三,通信细节与过程 在点对点的通信中, SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中, 阅读全文
posted @ 2019-05-28 22:29 狂奔~ 编辑
摘要:学习blog:https://www.cnblogs.com/liwanliangblog/p/9289247.html autotools 工具集自动生成符合 Linux 规范的 Makefile 文件。 安装 autotools 工具集,安装命令如下, $ sudo apt-get instal 阅读全文
posted @ 2019-05-27 15:18 狂奔~ 编辑
摘要:example.c 阅读全文
posted @ 2019-05-26 19:44 狂奔~ 编辑
摘要:find 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只要你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可 阅读全文
posted @ 2019-05-26 19:28 狂奔~ 编辑
摘要:1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 grep家族包括grep、egrep和fgrep。eg 阅读全文
posted @ 2019-05-26 19:05 狂奔~ 编辑
摘要:正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义。其实grep还可以找出符合某个模式(Pattern)的一类字符串。 例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、数字、下划线、小数点或减号,em 阅读全文
posted @ 2019-05-26 18:48 狂奔~ 编辑
摘要:Shell提供了一些用于调试脚本的选项,如下所示:-n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出 -x 提供跟踪执行信息,将执行的每一条命令和结果依次打印出来 使用这些选项有三种方法, 一是在命令行提供参数 $ sh -x . 阅读全文
posted @ 2019-05-26 17:21 狂奔~ 编辑
摘要:条件测试:test 和 [ 命令 test 或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反)。 例如测试两个数的大小关系: 虽然看起来很奇怪,但 左方括号 [ 确实是一个命 阅读全文
posted @ 2019-05-26 10:45 狂奔~ 编辑
摘要:Shell 就是一个命令解释器,他的作用就是解释执行用户输入的命令及程序等,用户每输入一条命令,Shell 就解释一条。这种从键盘一输入命令,就可以立即得到回应的对话方式,就称为交互的方式。 当命令或程序不在命令下执行,而是通过一个程序来执行时,该程序就称为Shell 脚本。 Shell 脚本类似于 阅读全文
posted @ 2019-05-25 23:23 狂奔~ 编辑
摘要:/*by wenpeng.xing@gmail.com*/ #include #include #include #include #include #include #include #include #include "threadpool.h" #define DEFAULT_TIME 10 /*10s检测一次*/ #def... 阅读全文
posted @ 2019-05-25 22:28 狂奔~ 编辑
摘要:socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要 阅读全文
posted @ 2019-05-25 18:07 狂奔~ 编辑
摘要:#include <sys/socket.h> int setsockopt( int socket, int level, int option_name, const void *option_value, size_t option_len); 第一个参数socket是套接字描述符。 第二个参 阅读全文
posted @ 2019-05-25 16:57 狂奔~ 编辑
摘要:广播 client 组播 组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。 永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。 阅读全文
posted @ 2019-05-25 16:30 狂奔~ 编辑
摘要:server.c client.c 阅读全文
posted @ 2019-05-25 16:01 狂奔~ 编辑
摘要:select 1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数 2.解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不 阅读全文
posted @ 2019-05-24 23:20 狂奔~ 编辑
摘要:Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理 阅读全文
posted @ 2019-05-24 21:22 狂奔~ 编辑
摘要:Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照, 就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当 阅读全文
posted @ 2019-05-24 21:15 狂奔~ 编辑
摘要:https://www.pythonav.com/wiki/detail/4/0/ 阅读全文
posted @ 2019-05-24 09:25 狂奔~ 编辑
摘要:socket这个词可以表示很多概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。 阅读全文
posted @ 2019-05-23 23:26 狂奔~ 编辑
摘要:数据包封装 传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulatio 阅读全文
posted @ 2019-05-23 10:55 狂奔~ 编辑
摘要:什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 阅读全文
posted @ 2019-05-22 22:45 狂奔~ 编辑
摘要:有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误。这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小了,导致栈空间不够分配,出现错误。 (1)查看linux默认栈空间的大小 通过命令 ulimit - 阅读全文
posted @ 2019-05-22 22:10 狂奔~ 编辑
摘要:同步概念 所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。 如,设备同步,是指在两个设备之间规定一个共同的时间参考; 数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致; 文件同步,是指让两个或多个文件夹里的文件保持一致。等等 而,编程中、通信中所说的同 阅读全文
posted @ 2019-05-20 14:50 狂奔~ 编辑
摘要:pwrite,pread,在多线程中读写文件使用,将lseek 和read 或write 合为一个原子操作(在执行的时候不会失去CPU)。 ssize_t pwrite(intfd, const void *buf, size_tcount, off_toffset); 返回值:成功,返回写入到文件 阅读全文
posted @ 2019-05-20 11:22 狂奔~ 编辑
摘要:安装线程man page,命令:sudo apt-get install manpages-posix-dev 线程概念 什么是线程 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址 阅读全文
posted @ 2019-05-19 22:49 狂奔~ 编辑
摘要:一、pathogen简介 通常情况下安装vim插件,通常是将所有的插件和相关的doc文件都安装在中一文件夹中,如将插件全部安装在/usr/share/vim/vim73/plugin/目录下,将帮助文档全部安装在/usr/share/vim/vim73/doc/目录下。这样做带来的后果是修改和卸载插 阅读全文
posted @ 2019-05-19 20:24 狂奔~ 编辑
摘要:基本概念: 1. tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。 终端是一种字符型设备,它有多种类型,通常使用tty来简称 阅读全文
posted @ 2019-05-19 14:32 狂奔~ 编辑
摘要:终端: 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal), 进程中,控制终端是保存在PCB中的信息,而fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。 默认情况下( 阅读全文
posted @ 2019-05-19 14:31 狂奔~ 编辑
摘要:信号的概念 man 7 siganl 查看man手册 信号在我们的生活中随处可见, 如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪......他们都有共性:1. 简单 2. 不能携带大量信息 3. 满足某个特设条件才发送。 信号是信息的载体,Linux/UNIX 环境下,古老、经 阅读全文
posted @ 2019-05-18 14:10 狂奔~ 编辑
摘要:IPC方法 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问, 要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机 阅读全文
posted @ 2019-05-16 22:55 狂奔~ 编辑
摘要:循环队列:具有队头指针和队尾指针,指示队列元素所在的位置,避免删除元素时移动大量元素。 循环队列特性: 只能队尾插入元素、在队头删除元素。 先进先出(First In First Out)的线性表,先进入的元素出队,后进入的元素才能出队。 优点: 相比普通的队列,元素出队时无需移动大量元素,只需移动 阅读全文
posted @ 2019-05-16 15:46 狂奔~ 编辑
摘要:优秀博文参考: https://www.cnblogs.com/0xcafebabe/p/4478824.html http://www.cnblogs.com/0xcafebabe/p/4423699.html http://code.woboq.org/linux/linux/ 在线浏览kern 阅读全文
posted @ 2019-05-16 13:48 狂奔~ 编辑
摘要:进程的相关概念: 程序和进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁....) 进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程) 程序 → 剧本(纸) 进程 → 戏(舞台、 阅读全文
posted @ 2019-05-16 12:48 狂奔~ 编辑
摘要:tk官网的教程学习: https://tkdocs.com/tutorial/firstexample.html 学习blog: https://www.cnblogs.com/aland-1415/p/6849193.html 创建一个GUI程序 1,导入 ,tkinter 模块 2,创建控件 3 阅读全文
posted @ 2019-05-14 16:56 狂奔~ 编辑
摘要:所需头文件 %a 星期几的简写 %A 星期几的全称 %b 月份的简写 %B 月份的全称 %c 标准的日期的时间串 %C 年份的前两位数字 %d 十进制表示的每月的第几天 %D 月/天/年 %e 在两字符域中,十进制表示的每月的第几天 %F 年-月-日 %g 年份的后两位数字,使用基于周的年 %G 年 阅读全文
posted @ 2019-05-14 11:42 狂奔~ 编辑
摘要:系统调用 什么是系统调用: 由操作系统实现并提供给外部应用程序的编程接口。(Application Programming Interface,API)。是应用程序同系统之间数据交互的桥梁。 C标准函数和系统函数调用关系。一个helloworld如何打印到屏幕。 C标准库文件IO函数。 fopen、 阅读全文
posted @ 2019-05-13 23:14 狂奔~ 编辑
摘要:1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句 阅读全文
posted @ 2019-05-12 17:33 狂奔~ 编辑
摘要:大小端模式 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这 阅读全文
posted @ 2019-05-12 15:52 狂奔~ 编辑
摘要:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 百盒测试:已知产品内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否要经过检查。 区别: 1.在测试的方面上有所不同:软件的黑盒测试意味着测试要在软件的接口处进行。软件的白盒测试是对软件的 阅读全文
posted @ 2019-05-12 15:47 狂奔~ 编辑
摘要:register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码, 但是使用register修饰符有几点限制 (1)register变量必须是能被CPU所接受的类型。 这通常意味着register变量必须是一个单个的值 阅读全文
posted @ 2019-05-12 14:04 狂奔~ 编辑
摘要:可以的,例如只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值 阅读全文
posted @ 2019-05-12 13:57 狂奔~ 编辑
摘要:dynamic_cast是四个强制类型转换操作符中最特殊的一个,它支持运行时识别指针或引用。 首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的source对象是否真的可以转换成target类型, 这种检查不是语法上的,而是真实情况的检查。 dyn 阅读全文
posted @ 2019-05-12 12:32 狂奔~ 编辑
摘要:恢复内容开始 static_cast是一个强制类型转换操作符。强制类型转换,也称为显式转换,C++中强制类型转换操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四个。 编译器隐式执行的任何类型转换都可以由static_cast来完成,比 阅读全文
posted @ 2019-05-12 10:50 狂奔~ 编辑
摘要:恢复内容开始 参考博客:https://www.cnblogs.com/QG-whz/p/4513136.html const_cast是一个基于C语言编程开发的运算方法, 其主要作用是:修改类型的const或volatile属性。使用该运算方法可以返回一个指向非常量的指针(或引用)指向b1, 就可 阅读全文
posted @ 2019-05-12 10:14 狂奔~ 编辑
摘要:原文链接:https://blog.csdn.net/xuwentao37x/article/details/27804169 多线程的程序是出了名的难编写、难验证、难调试、难维护,这通常是件苦差事。不正确的多线程程序可能可以运行很多年也不出一点错,直到满足某些临界的条件时,才出现意想不到的奇怪错误 阅读全文
posted @ 2019-05-12 09:35 狂奔~ 编辑
摘要:https://www.jianshu.com/p/c64ae3e9b196 pillow使用备忘之OSError: cannot open resource错误处理 在使用pillow过程中,Python程序出现了:OSError: cannot open resource提示。 pillow出错 阅读全文
posted @ 2019-05-11 15:21 狂奔~ 编辑
摘要:http://zh.highscore.de/cpp/boost/ 阅读全文
posted @ 2019-05-10 13:45 狂奔~ 编辑
摘要:数据库设计 from django.db import models # Create your models here. # 数据库设计: # 用户表: uid,username,pwd,email,img, class UserInfo(models.Model): '''用户表''' nid 阅读全文
posted @ 2019-05-09 17:05 狂奔~ 编辑
摘要:恢复内容开始 https://www.cnblogs.com/ranxf/p/7808537.html 1、模块说明 requests是使用Apache2 licensed 许可证的HTTP库。 用python编写。 比urllib2模块更简洁。 Request支持HTTP连接保持和连接池,支持使用 阅读全文
posted @ 2019-05-08 15:31 狂奔~ 编辑
摘要:http://www.cnblogs.com/coser/archive/2011/12/17/2291160.html 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简 阅读全文
posted @ 2019-05-08 10:05 狂奔~ 编辑
摘要:https://www.cnblogs.com/ftl1012/p/9563278.html 阅读全文
posted @ 2019-05-08 09:30 狂奔~ 编辑
摘要:直接在目录中输入cmd然后就打开cmd命令窗口 阅读全文
posted @ 2019-05-07 22:50 狂奔~ 阅读(416) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/wyl-0120/p/10823102.html 为了方便使用,通过pyinstaller对脚本进行打包成exe文件。 执行 阅读全文
posted @ 2019-05-07 17:16 狂奔~ 编辑
摘要:https://www.cnblogs.com/lixinjie/p/a-post-about-io-clearly.html 阅读全文
posted @ 2019-05-07 16:44 狂奔~ 编辑
摘要:转自:https://www.cnblogs.com/fengliu-/p/7218970.html C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstr 阅读全文
posted @ 2019-05-06 18:10 狂奔~ 编辑
摘要:https://blog.csdn.net/wang18323834864/article/details/78621633 阅读全文
posted @ 2019-05-06 17:26 狂奔~ 编辑
摘要:树控件 基于对话框创建工程 标签控件(tab control) // TabSheet.cpp : implementation file // #include "stdafx.h" //#include "Property5.h" #include "TabSheet.h" #ifdef _DE 阅读全文
posted @ 2019-05-05 22:53 狂奔~ 编辑
摘要:一、文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口、文档、视图关联在一起b)文档类(CDocument): OnNewDocument(),第一次新建窗口调用,后面每次按“新建”,自动调用此函数 Delete 阅读全文
posted @ 2019-05-05 17:56 狂奔~ 编辑
摘要:1,模态对话框和非模态对话框 // 模态对话框 void CMainFrame::OnDialogExec() { // TODO: 在此添加命令处理程序代码 // 创建对话框对象 CDialog dlg(IDD_DIALOG1); // 阻塞 // 运行 dlg.DoModal(); } // 非 阅读全文
posted @ 2019-05-03 23:55 狂奔~ 编辑
摘要:1,简单绘图 画直线 a,鼠标按下和抬起 b,CPaintDC 只能在OnPaint 中使用 CClientDC 在任何地方都可以使用 c,起点和终点 MoveTo 移动当前位置 LineTo 从当前位置到一点画直线,但不包括那个点 d,选择所属类 -> 右击 -> 添加变量,这种方法会自动帮你初始 阅读全文
posted @ 2019-05-02 14:21 狂奔~ 编辑
摘要:CWnd::MessageBox: 只有CWnd的派生类才可以使用MessageBox 所以应用程序类中使用:AfxMessageBox Afx_xxx 全局函数,不属于某个类特有 xxxEx: xxxW:,拓展函数: 如:TextOut(),TextOutW(),用法一样 命名规范 形参: isF 阅读全文
posted @ 2019-05-02 09:15 狂奔~ 编辑
摘要:标准ANSI,多字节,单字节 char p[] = "1234"; // 一个字符一个字节 Unicode 宽字节 ,一个字符两个字节 TCHAR *p = L"abc"; // 一个字符两个字节 wcslen(p); 如果我们写程序每次都要考虑单字节,宽字节的问题就很麻烦,MFC 通过一些宏来自动 阅读全文
posted @ 2019-05-02 08:48 狂奔~ 编辑
摘要:一,文档视图结构 文档:它是一个类,这个类专门用来存储数据 视图:它是一个类,这个类专门用来显示和修改数据 框架类:一个容器,这个容器装了视图 健完工程之后,类视图: 运行一下: 几个比较重要的函数 1,视图类 CView OnDraw(),绘图。 WM_PAINT,消息处理函数OnPaint()内 阅读全文
posted @ 2019-05-01 23:57 狂奔~ 编辑
摘要:1.应用程序类 CWinApp https://docs.microsoft.com/zh-cn/cpp/mfc/reference/cwinapp-class?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev15.query%3FappId% 阅读全文
posted @ 2019-05-01 19:26 狂奔~ 编辑

点击右上角即可分享
微信分享提示