08 2019 档案
摘要:链接:https://blog.csdn.net/changexhao/article/details/78321295(https://www.cnblogs.com/wrjvszq/p/4257164.html) 一、Linux体系架构 Linux内核只是Linux操作系统的一部分,对下它管理系
阅读全文
摘要:一、静态库和共享库的区别 静态库在编译的时候被加载,而共享库在执行之后才被加载 加载静态库编译所生成的可执行文件比使用共享库的方式要大 静态库以.a为后缀,共享库以.so为后缀 二、静态库的制作 gcc -c add.c sub.c(编写源文件,gcc -c命令生成对应的目标文件add.o和sub.
阅读全文
摘要:一、libusb常用数据结构 libusb_device *list:设备列表 libusb_device_handle *handle:设备句柄 struct libusb_device_descriptor desc:设备描述符 struct libusb_config_descriptor c
阅读全文
摘要:链接:https://blog.csdn.net/zqixiao_09/article/details/50984074 一、USB设备由3个功能模块组成,USB总线接口、USB逻辑设备和功能单元: USB总线接口:USB设备中的串行接口引擎SIE USB逻辑设备:被USB系统软件看作是一个端点的集
阅读全文
摘要:一、Ubuntu下需要安装软件的三种方法(链接:https://www.cnblogs.com/xwdreamer/p/3623454.html),如下: 1 apt-get直接安装 sudo apt-get install xxx sudo apt-get remove xxx sudo apt-
阅读全文
摘要:gcc、make、cmake的区别和联系: (1)gcc是GNU Compiler Collection编译器,可以编译多种编程语言,比如C/C++等;当包含多个源文件时需要用gcc命令逐个去编译,工作量较大且比较混乱; (2)make工具可以看成一个只能的批处理工具,它本身并没有编译和链接的功能,
阅读全文
摘要:1 交互式脚本:变量内容由用户决定 2 随日期变化:利用日期创建文件 3 数值运算:简单的加减乘除 4 test命令 5 判断符号[] 1 #!/bin/bash 2 3 read -p "Please input y/n: " yn 4 5 if [ "$yn" == "Y" ] || [ "$y
阅读全文
摘要:进程间通信(IPC)就是指不同进程之间传播和交换数据,每个进程各自有不同的用户地址空间(虚拟地址空间),任何一个进程的全局变量在另一个进程中都看不到,所以进程间要交换数据必须能通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷贝到内核缓冲区,进程B再把数据从内核缓冲区拷贝到自己的用户空间,内
阅读全文
摘要:一、共享内存shm 1 概念:多个进程的地址空间都映射到同一块物理内存,这样多个进程都能看到这块物理内存,实现进程间通信,而且不需要数据的拷贝,所以速度最快。 二、内存映射mmap 1 前言:先介绍一下普通的读写文件的原理,进程调用read/write系统调用后会陷入内核,内核开始读写文件,假设内核
阅读全文
摘要:I/O多路复用:单个线程可以同时处理多个I/O; 一、select:成功则返回已准备好的文件描述符个数,超时则返回0,出错则返回-1; (1)头文件包含:#include <sys/select.h>、<unistd.h>、<sys/time.h>; (2)select返回后集合fdset中只有事件
阅读全文
摘要:Linux的进程处理函数需包含头文件:#include <unistd.h> 一、进程函数 1 进程创建 pid_d fork(void); 2 进程终止:只有exit才会先清理I/O再进入内核,所以输出缓冲中的所有数据都会被写入到文件中,等同于return 0; void exit(int sta
阅读全文
摘要:Linux的线程处理函数需包含头文件:#include <pthread.h> 一、线程函数:成功则返回0,出错则返回错误编号 1 线程创建 int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void *(*start_r
阅读全文
摘要:Linux下的大部分文件/目录处理函数都需包含头文件:#include <sys/stat.h>,少部分需包含<unistd.h>或<stdio.h> 01 文件类型: S_ISREG(st_mode) 普通文件 S_ISDIR(st_mode) 目录 S_ISCHR(st_mode) 字符设备 S
阅读全文
摘要:一、C语言标准库中字符处理函数许包含头文件 <string.h>,常用字符串吹函数列表如下: 1 计算字符串长度 size_t strlen(const char *str); //不包含结束符'\0' 2 字符串拷贝 char *strcpy(char *dest, const char *src
阅读全文
摘要:一、文件头: sizeof(Elf32_Ehdr)=52 e_type: 类型 可重定位文件.o、可执行文件、共享目标文件.so e_ehsize: 文件头大小 52 e_machine: CPU平台属性,如Intel_x86; e_entry: 入口虚拟地址,但是可重定位文件没有; e_shoff
阅读全文
摘要:一、应用层 1 DNS:域名系统(Domain Name System),将互联网上的主机名字即域名转换为IP地址,端口号53,解析过程如下: 如果主机和本地的缓存里面没有对应的IP地址则: 主机 >本地域名服务器: 本地 >根 本地 >顶级 本地 >权限 本地域名服务器 >主机; 2 FTP:文件
阅读全文
摘要:一、进程、线程管理 1 基本概念 进程是资源分配的基本单位,是正在执行程序的实例,是动态的,而程序是静态的,同一个程序跑两次则是两个进程; 线程是CPU独立调度的基本单位,共享整个地址空间、全局变量、打开的文件描述符;私有数据:堆栈、寄存器、程序计数器; 并行:同一时刻有多个进程在运行,比如多核处理
阅读全文
摘要:一、在Linux的文件系统调用中,所有函数都是根据文件描述符fd来访问文件的,如下: 1 文件描述符的创建和关闭 int open(const char *path, int oflag,...); //成功则返回文件描述符fd,出错则返回-1 int create(const char *path
阅读全文
摘要:转载:https://blog.csdn.net/zhangshk_/article/details/82911093 01 术语: 稳定:假设排序前a在b前面且a=b,那么排序后a仍然在b前面,即排序过程中不会出现跳跃式交换数据,只能相邻的才交换数据; 不稳定:和上面相反; 内排序:比较排序,即所
阅读全文

浙公网安备 33010602011771号