嵌入式-Linux
文章平均质量分 59
嵌入式-Linux研究
linux-前端-IPC
Achilles.Wang
勿在浮沙筑高台
展开
-
如何做一个有质量的技术分享
分享信息并不难,大多数人都能做到,就算是不善言谈性格内向的技术人员,通过博客或社交媒体,或是不正式的交流,他们都能或多或少的做到。但是如果你想要做一个有质量有高度的分享,这个就难了。下面是陈皓的公司内Knowledge Sharing中的Best Practice,供参考。原文链接:https://coolshell.cn/articles/21589.html。原创 2023-06-02 16:55:52 · 752 阅读 · 0 评论 -
tcpdump常用技巧以及wireshark借助tcpdump实现跨设备远程抓包
tcpdump - dump traffic on a network interface[IMPORTANT].Feeding the Werewolves认识tcpdump刚开始接触tcpdump肯定会被这些参数给吓到,其实实际使用中只需要掌握几个关键的参数就行了。53端口是DNS使用的端口,DNS分为查询和应答:DSN requires – DNS response,来让我们看一下我们的电脑在查询哪些DNS[TIP]我有个程序,监听所有的网卡上,监听端口是1668,我应该如何抓包...原创 2022-06-16 23:34:06 · 415 阅读 · 1 评论 -
C++继承中的同名成员变量处理方法
1、当子类成员变量与父类成员变量同名时2、子类依然从父类继承同名成员3、在子类中通过作用域分辨符::进行同名成员区分(在派生类中使用基类的同名成员,显式地使用类名限定符)4、同名成员存储在内存中的不同位置#include <iostream>using namespace std;class A{public: int a; int b;public: void get() { cout<<"b "<<b<<endl;原创 2020-09-24 23:34:40 · 2278 阅读 · 1 评论 -
C++字符串处理操作符重载
&& || 不能进行运算符重载,因为运算符重载不能进行截断操作截断操作就是当 a || b,a为真的时候就不会再判断b了,但是运算符重载不能达到这效果。类定义// 类定义#include <iostream>using namespace std;//c中没有字符串 字符串类(c风格的字符串)//空串 ""class MyString{ friend ostream& operator<<(ostream &out, MyS原创 2020-09-23 00:16:10 · 440 阅读 · 0 评论 -
一文读懂UPNP-UPNP超详细介绍
UPNP report| | | | _ \| \ | | _ \ _ __ ___ _ __ ___ _ __| |_ | | | | |_) | \| | |_) | | '__/ _ \ '_ \ / _ \| '__| __|| |_| | __/| |\ | __/ | | | __/ |_) | (_) | | | |_ \___/|_| |_| \_|_| |_| \___| .__/ \___/|_| \__|原创 2020-07-15 22:56:42 · 21429 阅读 · 4 评论 -
拔掉 MacBookPro,用 8GB 树莓派4 工作一天,体验原来是这样的
转载https://mp.weixin.qq.com/s/16tJiCylKOXJT0If5EbDeAhttps://mp.weixin.qq.com/s/16tJiCylKOXJT0If5EbDeA转载 2020-06-21 09:46:57 · 253 阅读 · 0 评论 -
C语言必知必会-strtok赞歌
strtok的赞歌标记解析(Tokenizing)是最简单也是最常见的解析问题,也就是根据分隔符把一个字符串分割为几个部分。这个定义覆盖了所有这种类型的任务。根据空白分隔符(例如" \t\n\r"之一)分割单词。假设有个像"/usr/include:/usr/local/include:."这样的路径,在冒号处将其分开,形成单独的目录。根据一个简单的换行分隔符"\n"把一个字符串分割为不同的行。...原创 2020-04-19 00:17:34 · 451 阅读 · 0 评论 -
学习网站大全
算法可视化算法网站中文可视化算法中文网址可视化算法英文网址原创 2020-04-18 12:35:00 · 1529 阅读 · 0 评论 -
C语言库自带的二分查找函数bsearch函数的使用示例
bsearch使用二分查找,查找一个被排序过的数组依赖头文件#include <stdlib.h> void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, ...原创 2020-04-13 22:53:55 · 2544 阅读 · 0 评论 -
linux中以A开头的函数使用方式历程及详解
A开头的Linux C函数abort异常终止程序abort函数在调用的时候,会触发SIGABRT信号#include <stdlib.h>#include <signal.h>#include <stdio.h>#include <unistd.h>static void signalHandler(int sig);// 信号...原创 2020-04-12 16:54:36 · 583 阅读 · 0 评论 -
ubuntu16.04上安装graphy-easy
Graph::Easy 是一个处理图形DSL的Perl模块,它有如下功能:提供了一种易懂,可读性很强的图形描述语言一种支持 ASCII Art 的基于网格的布局器可以导出为 Graphviz, VCG (Visualizing Compiler Graphs), GDL (Graph Description LAnguages) 和 GraphML 格式。可以从 Graphviz, VCG...原创 2020-01-18 22:44:32 · 705 阅读 · 0 评论 -
HTTP协议详解
HTTP协议详解HTTP的主要特点支持客户/服务器模式。简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。无连...原创 2020-01-15 00:12:24 · 664 阅读 · 0 评论 -
Linux中文件加锁
/proc/locksandrew@andrew-Thurley:/dev$ cat /proc/locks 1: POSIX ADVISORY WRITE 8968 08:01:11666907 1073741825 10737418252: POSIX ADVISORY READ 2433 08:01:11798469 128 128...35: FLOCK ADVISO...原创 2019-12-22 22:12:36 · 2933 阅读 · 0 评论 -
enum-使用宏管理你的枚举型数据
高级枚举型定义实现C源文件#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>/*实现原理说明:首先在枚举型结构体中定义宏定义 #d...原创 2019-12-08 22:58:24 · 924 阅读 · 0 评论 -
wireshark抓包过滤指定的字节数据
在使用wireshark抓包的时候,文本信息还好,但是遇到二进制的信息时,就需要对指定的字节信息进行过滤来找到你想要找的包了tcp[20:4]==30:30:30:30 代表的意思是,TCP数据报文中,出掉头部的20字节,之后的4个字节的数据为`30:30:30:30`...原创 2019-12-08 14:27:02 · 7250 阅读 · 4 评论 -
shell--变量的替换
文章目录变量的替换小知识加油站--trap使用trap设计一个用于反应程序执行过程的脚本变量是什么,变量是脚本编程中进行数据表现的一种方法,说白了,变量不过是计算机为了保留数据项,而在内存中分配的一个位置或一组位置的标识或名字。变量的替换变量的名字就是保存变量值的地方,引用变量的值就叫做变量替换$在shell中要仔细区分变量的名字和变量的值,如果a是一个变量,那么$a就是引用这个变量的值...原创 2019-11-24 17:43:40 · 546 阅读 · 0 评论 -
tldr一个精简的man手册替代品
文章目录tldr安装常用参数使用示例tldr假如你是一个对man手册那又臭又长的命令感觉到厌倦的人,你可以去了解一下tldr命令安装确保你的系统已经安装了npm使用一下命令对tldr进行安装 tldr - Too Long; Didn't Readgithub地址常用参数 -V, --version 查看版本 -l, --list ...原创 2019-11-21 23:57:11 · 790 阅读 · 0 评论 -
shelll热身
文章目录热身为什么使用`shell`带着一个`Sha-Bang`出发(`Sha-Bang`是指`#!`)热身为什么使用shell作为一个从事嵌入式行业的开发人员,每天要打交道的就是和Linux的shell串口,更准却的来说是bash shell,很多人刚从windows的界面操作转到Linux上来时,对看到Linux这个弹出来的控制窗口,多少有点不知所措,甚至有点茫然。书读了一本又一本,博...原创 2019-11-16 12:38:34 · 382 阅读 · 0 评论 -
u-boot编译过程分析
文章目录U-boot Makefile国建过程主机构建环境配置过程定义主机系统架构定义主机操作系统类型定义SHELL脚本的解释器设定编译输出目录目标机相关配置过程mkconfig脚本传递给mkconfig脚本参数检查参数合法性创建到目录板相关目录的链接构建`include/config.mk`文件构建`include/config.h`文件make命令执行过程顶层目录`config,mk`分析包含...原创 2019-10-27 14:13:09 · 590 阅读 · 0 评论 -
Automake十分钟速成教程
文章目录AUTOMAKE小试牛刀所需文件执行步骤文件含义发布程序exampleAUTOMAKE小试牛刀所需文件使用automake管理单个可执行程序所需文件hello–文件夹hello/Makefile.amhello/configure.achello/inc–文件夹hello/src–文件夹hello/src/main.chello/src/Makefile.am...原创 2019-10-20 13:32:37 · 5442 阅读 · 0 评论 -
进程间通信-system-v
文章目录System V IPC概述消息队列创建或打开消息队列消息控制发送消息接收消息发送消息示例:共享内存创建共享内存共享内存控制共享内存映射和解除映射共享内存使用示例:信号量进程间信号量创建信号量集信号量集控制信号量集操作信号量模块封装示例:System V IPC概述System V引入了三种高级进程间通信机制消息队列、共享内存和信号量IPC对象(消息队列、共享内存和信号...原创 2019-05-03 18:45:05 · 592 阅读 · 0 评论 -
基于ARM的linux嵌入式操作系统
RISC:0精简指令系统计算机(RISC) ARM即Advanced RISC Machines的缩写,既是一个公司的名字也是一种微处理器的统称,还可以认为是一种技术的名字;原创 2017-07-02 21:00:19 · 695 阅读 · 0 评论 -
linux系统程序设计
计算机的基本组成:处理器主存储器输入输出模块系统总线标准C的IO输出有三种缓存类型全缓存:对于磁盘通常使用全缓存操作行缓存:终端的标准输入输出 两种情况下航缓存会输出:1)行缓存满自动输出。2)碰到换行符自动输出无缓存 标准作物输出通常是不带缓存的是为了错误信息能够尽快的显示出来使用实例证明printf后面不加回车,那么行缓存将不会输出自读到屏幕上://程序一直运...原创 2018-07-31 23:16:47 · 798 阅读 · 0 评论 -
lseek函数
#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, offset, int whence)说明:若成功返回新的文件偏移量(绝对偏移量),若出错位-1功能:定位一个已打开的新文件fd:已打开文件描述符offset:位移量whence:定位的位置 SEEK_SET:将文件的位移量设...原创 2018-08-04 22:53:50 · 194 阅读 · 0 评论 -
配置交叉编译环境
自己配置了两天多了,终于找到了解决方式在配置交叉编译环境的时候,若你的主机是64位的,除了按照韦东山老师说的那样配置之外还要安装 lsb-core即执行下面的语句:sudo apt-get install lsb-core 否则会出现:NO SUCH FILE OR DIRECTORY...原创 2018-08-09 23:34:15 · 780 阅读 · 0 评论 -
linux-IO
使用命令more hole.txt若hole是空洞文件,则只能查看文件的前半部分,可以使用od -c hole.txt 查看文件的二进制形式的,可以看到空洞文件中默认是放入 ‘\o’ ,所以使用more命令看不到...原创 2018-08-10 23:07:02 · 266 阅读 · 0 评论 -
lseek()函数详解
今日命令: df -k //查看磁盘的分区情况andrew@andrew-Thurley:~/work/iotec$ df -k文件系统 1K-块 已用 可用 已用% 挂载点udev 2800604 0 2800604 0% /devtmpfs 566068 837...原创 2018-08-10 23:30:37 · 19811 阅读 · 0 评论 -
Linux中文件操作
在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件,它的文件描述符会是3。P...原创 2018-08-11 09:03:29 · 244 阅读 · 0 评论 -
dup和dup2以及cat函数函数
今日命令:more filenamen //分屏显示filename 内容od -c filename //使用二进制形式查看文件内容dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的原形如下:#include &amp;lt;unistd.h&amp;gt;int d...原创 2018-08-11 10:25:33 · 398 阅读 · 0 评论 -
fcntl函数-文件控制函数
今日命令在vim中使用:vsplit ./include/io.h 是以垂直方式打开io.h文件 同理:split ./include/io.h 是以水平方式打开io.h文件可以用fcntl 函数改变一个已打开的文件的属性,可以重新设置读、写、追加、非阻塞等标志(这些标志称为File StatusFlag),而不必重新open 文件。#include &lt;unistd.h...原创 2018-08-11 13:02:23 · 450 阅读 · 0 评论 -
使用fcntl编写set_fl()函数和clr_fl()函数
voidset_fl(int fd, int flags) /* flags are file status flags to turn on */{ int val; if ( (val = fcntl(fd, F_GETFL, 0)) < 0) { printf("fcntl F_GETFL error"); ...原创 2018-08-11 13:03:49 · 400 阅读 · 0 评论 -
阻塞IO模型-数据读写
使用的IO模型若是没有设置就是默认是阻塞的 注意运行环境ubuntu16.04#include &lt;unistd.h&gt;#include &lt;fcntl.h&gt;#include &lt;stdlib.h&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt;int原创 2018-08-11 17:23:22 · 451 阅读 · 0 评论 -
非阻塞IO-读数据
阻塞型看:阻塞IO读数据 使用set_fl(STDIN_FILENO, O_NONBLOCK);将输入输出设置为非阻塞时,read()函数等不到数据输入的时候就会直接返回出错信息,而不是继续等到用户输入。#include <unistd.h>#include <fcntl.h>#include <stdlib.h>#include <stdio...原创 2018-08-11 17:44:07 · 1056 阅读 · 0 评论 -
fcntl函数完成 set_fl()函数还有clr_fl()函数的封装
使用fcntl函数完成,set_fl和clr_fl()函数的封装,设置文件的属性,例如:阻塞IO模型 和 非阻塞IO模型#include <stdio.h>#include "io.h"void set_fl(int fd, int flags) /* flags are file status flags to turn on */{ int val...原创 2018-08-11 17:48:34 · 701 阅读 · 0 评论 -
csdn设置自己的博客代码和博客的背景颜色
设置自己的背景颜色&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=#000322&amp;gt; 这里是背景颜色&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;原创 2018-08-11 20:05:08 · 4588 阅读 · 3 评论 -
linux中的五大查找命令---whereis,find,locate,which,type
附代码上色实例:<table><tr><td bgcolor=#7FFFD4><ol><li><font size="2" color="#CC78321"face='Consolas'>package</font> <font size= &quo原创 2018-08-11 20:44:14 · 313 阅读 · 0 评论 -
网络分层模型OSI和TCP/IP四层模型
网络分层模型OSI和TCP/IP四层模型网络分层模型OSI和TCP/IP四层模型OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。...原创 2018-08-12 08:17:12 · 20191 阅读 · 2 评论 -
socket(套接字)详解一种通讯机制
socket给提供给使用进程TCP/UDP等网络协议进行网络通讯手段。 linux中网络编程通过socket接口实现; socket既是一种特殊的IO,提供对应的文件描述符。socket都有一个相关的描述{协议,本地地址,本地端口,远程地址,远程端口}(五元组信息);每一个socket有一个本地的唯一socket,由操作系统分配。#include &lt;sys/socket.h&gt;...原创 2018-08-13 00:31:27 · 2132 阅读 · 0 评论 -
htonl、ntohl、htons、ntohs函数
htonl函数,将一个32位整数,由主机字节序转换为网络字节序。htons函数,将一个16位整数,由主机字节序转化为网络字节序 ntohl函数,将一个32位整数,由网络字节序转换为主机字节序。ntohs函数,将一个16位整数,由网络字节序转化为主机字节序htonl()--"Host to Network Long"ntohl()--"Network ...原创 2018-08-13 22:26:13 · 1921 阅读 · 0 评论 -
sockaddr与 sockaddr_in
留住因为很多系统调用必须使用这种结构struct sockaddr {unsigned short sa_family; /* 地址族, AF_xxx */char sa_data[14]; /* 14bytes的协议地址*/}; 上面是通用的socket地址,具体到Internet socket,用下面的结构,二者可以进行类型转换struct sockaddr_in {sho...原创 2018-08-13 22:43:09 · 175 阅读 · 0 评论