linux
文章平均质量分 54
默语先行
这个作者很懒,什么都没留下…
展开
-
文件操作函数封装(遍历文件夹下所有文件、统计文件夹下文件大小、删除目录及文件、文件保存、目录树创建)
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <dirent.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <list>#include <iterator&g原创 2021-10-28 16:59:35 · 337 阅读 · 0 评论 -
ip协议首部校验及tcp校验计算
IP报文首部校验和计算:上图为IP首部结构,16位首部校验和计算方法如下:将图中按照16位进行分组,然后校验和位清零,将数据按16位一组进行累加,最后得出一个结果,如果此结果高16位为0,则将结果按位取反后填入16位首部校验和位置;如果高16位不为0,则将高16位与低16位相加,再看得出结果高16位是否为0,如果不为零则继续相加,直到高16位为0,然后将结果按位取反后填入16位首部校验和位置。上图为一个tcp报文的抓包,提取其中ip报文,从第一行45 00到第三行a8 1c为ip报文,按照上述进原创 2021-10-18 17:43:06 · 2966 阅读 · 0 评论 -
adb shell启动app,通过命令行启动app,获取app的包及Activity名,各场景下通过adb命令安装app,shell直接安装app
adb connect ip设备,adb -s ip shell进入shell命令行模式。am start 包名/Activity名 启动某个应用am force-stop 包名 关闭某个应用am start -n 包名/Activity名 --stack 3 以分屏模式启动app通过前两个命令可以实现启动关闭app,如果想实现分屏,需要当前android系统支持,使用am start -n 包名/Activity名 --stac原创 2021-10-08 12:11:52 · 5562 阅读 · 0 评论 -
adb shell input使用,android模拟触屏、事件触发、拖拽等操作
shell控制端下使用input可以实现模拟触屏、虚拟按键及其他触摸操作,具体选项如下一、 text <string> (Default: touchscreen) 向当前输入框中键入字符串,如input text "cs input text"二、keyevent [–longpress] <key code number or name> … (Default: keyboard) 发送事件,测试发现,该动作无法实现长按动作,即使使用–longpr原创 2021-10-08 11:30:12 · 6167 阅读 · 0 评论 -
select、poll、epoll区别及实例,IO模型区别
UNIX提供了五种IO模型,分别是阻塞式IO、非阻塞式IO、IO复用、信号驱动式IO、异步IO五种,以UDP的recvfrom为例,五种IO比较如下:select、poll和epoll是IO复用的三个系统函数,其中select与poll在效率上是等同的,只不过poll理论监测描述符数量大于select,epoll的效率高于poll和select,这里说的效率比较是建立在监听大量描述符的情况下,小规模描述符三者效率比较无意义,如果只有几个感兴趣的描述符用select和poll即可。select:/*原创 2021-10-07 14:27:16 · 233 阅读 · 0 评论 -
守护进程-精灵进程创建
守护(精灵)进程,是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。其没有控制终端,不能直接和用户交互,不受用户登录、注销的影响。创建过程如下:创建子进程,父进程退出,脱离控制终端;子进程中创建新会话,这个步骤是创建守护进程中最重要的一步,在这里使用的是系统函数setsid。setsid函数用于创建一个新的会话,并担任该会话组的组长。调用setsid的三个作用:让进程摆脱原会话的控制、让进程摆脱原进程组的控制和让进程摆脱原控制终端的控制;改变当前工原创 2021-10-05 12:27:12 · 293 阅读 · 0 评论 -
设计模式之单例模式
单例设计模式属于创建型设计模式,其目的是为了保证一个类仅有一个实例,此类提供一个访问该类的全局访问节点。C++实现代码如下:#include <stdio.h>#include <stdlib.h>class Singleton{public: static Singleton *GetSingleton() /* 获取单例 */ { if(m_Singleton == NULL)//判断单例是否已经实例化-----------------------step原创 2021-10-04 13:49:35 · 92 阅读 · 0 评论 -
文件系统(ext2)及linux相关文件指令
首先了解两个文件相关的概念:inode和dentry,inode和dentry本质都是一个结构体。inode用来存储文件的属性信息,如:权限、类型、大小、时间、用户、盘块位置等。dentry的主要属性是名称数量、文件名和inode。从此我们可以看出一个文件必然对应一个inode,但是一个inode可以对应多个文件名称。linux观察方法如下:touch inodetest;ln inodetest inodetest1;stat inodetest;stat inodetest1;在linux原创 2021-10-02 11:44:29 · 411 阅读 · 2 评论 -
linux-exec(execl/execlp/execle/execv/execvp/execvpe)函数族
NAMEexecl, execlp, execle, execv, execvp, execvpe - execute a fileSYNOPSIS#include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(con原创 2021-09-22 11:39:57 · 857 阅读 · 0 评论 -
linux下网速监控 linux及android分网卡网速监控
网速监控 linux及android网速监控在/proc/下面有一个网络信息的设备交互目录,名称是net,net目录下存放了与网络相关所有信息,如网关文件route,tcp连接及归属等信息文件tcp(netstat命令的一部分),udp连接及归属等信息文件udp(netstat命令的一部分)等,与接收数据包相关的文件是dev,cat /proc/net/dev如下图:分为两块,一块为接受区,即第一行中的Receive,一块为发送区,即第一行中的Transmit,如果只考虑网速监控及流量统计,只需要关原创 2021-08-20 11:50:03 · 413 阅读 · 0 评论 -
unzip/unrar/7za交叉编译
一.下载源码unzip:https://download.csdn.net/download/qq_43547638/19660853unrar:https://download.csdn.net/download/qq_43547638/196606877z:https://download.csdn.net/download/qq_43547638/19660827二.将相关文件解压到linux下分别得到unzip610b、unrar-master和p7zip_16.02三个文件夹。三.修改原创 2021-06-15 20:08:52 · 498 阅读 · 0 评论 -
进程间同步
进程间同步的方式1.通过设置互斥量的属性实现互斥量初始化函数int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr)通过设置pthread_mutexattr_t实现进程同步,pthread_mutexattr_t相关函数如下:int pthread_mutexattr_init(pthread_mutexattr_t *attr)初始化int pthread原创 2021-03-14 18:56:59 · 196 阅读 · 0 评论 -
linux下实现USB设备(U盘)及SD卡自动识别及挂载(应用层) linux下U盘识别及挂载 linux下SD卡识别及挂载
两种方式,一种是注册通信句柄去监测内核发送的消息,一种是直接读取文件。第一种网上有很多,可以自行百度,但是这种方式只能识别热插拔,下面主要介绍通过读取文件去识别U盘及SD卡节点,实现挂载。两个目录及一个文件,分别是/sys/dev/block、/dev及/proc/mounts,先通过读取/sys/dev/block下面的连接属性及设备标识符(readlink函数),去确定是否存在USB设备和SD卡类设备,USB设备标识符为usb,SD卡的标识符一般为mmc0,然后再看节点信息,在读取的连接的最尾部可以看原创 2020-11-27 09:50:27 · 2573 阅读 · 5 评论