![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 92
雪天枫
这个作者很懒,什么都没留下…
展开
-
dlopen 和 dlsym 动态链接库调用函数
Linux提供了一套API来动态装载库。下面列出了这些API:函数- dlopen,打开一个库,并为使用该库作些准备。spa- dlsym,在打开的库中查找符号的值。命令行- dlclose,关闭库。指针- dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信息的字符串。codeC语言用户须要包含头文件dlfcn.h才能使用上述API。glibc还增长了两个POSIX标准中没有的API- 接口-dladdr,从函数指针解析符号名称和所在的文件。-原创 2022-03-28 14:51:52 · 2340 阅读 · 0 评论 -
[转]UDP(udp通信、广播、组播),本地套接字
转发:c/c++:UDP(udp通信、广播、组播),本地套接字 目录1. udp1.1 udp通信流程1.2 操作函数send、sendtorecv、recvfrom2. 广播2.1 广播通信流程2.2 设置广播属性函数:setsockopt2.3 广播代码3 组播3.1 组播地址3.2&nb转载 2020-07-16 22:46:28 · 356 阅读 · 0 评论 -
C/C++程序从文本文件中读取(保存)数据
在C程序中:与程序代码外的数据(文件)打交道,我们使用到流(stream)这个概念,实现进程的虚拟内存与文件之间的数据交换。——文件流:C标准库提供了FILE(之所以命名为FILE,因为linux将所有机制都视为文件) ,FILE对象是一个包含了管理流所需的所有信息的结构,包括缓冲区信息、各种标记(如文件结束标记和错误标记)以及用于实际I/O的文 件描述符等。——输入流,输入流:数据从文件传送到内存的叫输入流,数据从内存传送到文件的叫输出流。——打开文件:FILE对象通过调用fopen函数创建的。如转载 2020-07-08 14:13:05 · 16311 阅读 · 3 评论 -
TX2 ubuntu CPU占用率、占用物理内存、占用虚拟内存、进程ID、系统温度
文件解释在实际工作中有时需要程序打印出某个进程的内存占用情况以作参考, 下面介绍一种通过Linux下的伪文件系统/proc计算某进程内存占用的程序实现方法.首先, 为什么会有所谓的 伪文件 呢. Linux系统的文件类型大致可分为三类: 普通文件, 目录文件和伪文件. 伪文件不是用来存储数据的, 因此这些文件不占用磁盘空间, 只是存在于内存中. /proc让你可以与内核内部数据进行交互, 获取有关进程的有用信息.下面主要介绍一下 /proc下面的四个文件:/proc/stat, /proc/memi原创 2020-07-06 10:55:23 · 673 阅读 · 0 评论 -
常用C++容器
list容器list容器知识list是一种序列式容器,其完成的功能实际上和数据结构中的双向链表很相似,具备链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的每个节点有三个域:前驱元素指针域、数据域和后继元素指针域。常用序列式容器vector:和数组类似,拥有一段连续的内存空间,能非常好的支持随机存取,即[]操作符,但由于是连续的内存空间,在中间的插入和删除会导致内存块的拷贝。list:双向链表,内存空间不连续的,通过指针访问数据。deque:支持[]操作符,也支持原创 2020-05-11 15:14:25 · 162 阅读 · 0 评论 -
C/C++中函数参数传递
C/C++中函数参数传递C或C++中函数的参数传递包括:值传递、指针传递、引用传递这三种方法。以经典的交换两个整数为例:问题描述:输入描述:两个待交换的整数。程序输出:交换后的两个整数。值传递#include<stdio.h>void myswap(int x, int y){ int t; t=x; x=y; y=t;}int m...原创 2020-04-17 21:30:57 · 232 阅读 · 0 评论 -
C++中static在类中使用的含义
static修饰类中成员,表示类的共享数据static修饰类成员C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。即static不会像普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的。例如A类对象修改了static成员为1,那么B对...转载 2020-04-10 14:54:04 · 516 阅读 · 0 评论 -
Git快速入门
SSH进行git clone利用SSH的方式进行git clone需要在GitHub账户中添加SSH key。$ 打开Git Bash // 此处必须打开Git Bash,不是windows的shell。$ ssh-keygen -t rsa -b 4096 -C “your_email@example.com” // 一直Enter即可$ clip < ~/.ssh/i...原创 2020-04-10 14:17:30 · 159 阅读 · 0 评论 -
Ubuntu 命令行连接WiFi
使用iwconfig命令:iwconfig查看无线网络名称:wlan0,并且显示已经和CW-2017连接。使用如下命令,开启无线网络:sudo ip link set wlan0 up或者ifconfig wlan0 up搜索无线网 iwlist wlan0 scan 或 sudo iw dev wlan0 scan | less记下essid即无...原创 2019-12-17 16:45:30 · 7087 阅读 · 0 评论 -
解决树莓派SD卡文件系统扩容问题
使用树莓派的过程中,镜像实际占用空间往往只有SD卡的很小一部分,但是再实际使用过程中总是无法使用完整的SD卡空间,此时需要进行SD卡扩容,将系统未识别的空间,纳入系统空间。32G的SD卡,再windows系统下利用Win32 Disk Imager烧写镜像后,仅仅能够识别出7G空间,SD本省很多空间未释放;sudo raspi-config点击确定,即可实现文件系统扩展,完整使用整个S...原创 2019-12-17 15:32:07 · 1533 阅读 · 0 评论 -
树莓派3B+ 在ubuntu中镜像烧写
格式化sudo fdisk /dev/sdad n w卸载将格式化的内存卡插入到ubuntu中,df -h查找哪个设备是SD卡为了避免其它设备操作内存卡,先卸载设备sudo umount /dev/sda1烧录使用dd命令烧录镜像到SD卡中sudo dd bs=4M if=2018-10-09-raspbian-stretch.img of=/dev/sdabs代表一...原创 2019-11-22 19:01:46 · 654 阅读 · 0 评论 -
Ubuntu串口权限
$ ls -l /dev/ttyACM0crw-rw---- 1 root dialout 166, 0 5月 24 17:17 /dev/ttyACM0可以看到用户 (owner 是 root)而所属用户组为 dialout, 因此一种方法是把我们的登陆账号加入到这个用户组。$whoamiauv$sudo usermod -aG dialout auv...原创 2019-11-22 13:55:25 · 413 阅读 · 0 评论 -
制作压缩版的树莓派SD卡镜像
利用Win32DiskImager备份的SD卡镜像,镜像文件相当大,利用16GSD卡备份的镜像接近16G,利用32GSD卡备份的接近32G。通过下面方法,制作的SD卡镜像,和实际大小接近。查看TF卡中实际有效数据占用:在树莓派上使用df命令查看TF卡的实际占用情况。从图中可以看出,SD卡/dev/sda实际30G空间,仅仅使用了6.4G。查看并记录需要缩减分区的start扇区:插...转载 2019-11-22 13:51:56 · 1636 阅读 · 0 评论 -
树莓派IP相关
修改树莓派网卡名称ifconfig或netstat -i查看网卡名称可能大家遇到过网卡命名不是我们常见的eth0、eth1,而是enx+[mac地址](比如enxb827eb112233,而ubuntu mate采用的是PCI设备命名比如epn0s31f6)原因:这个不是系统bug,而是较新的命名规则一致的网络设备命名或CONSISTENT NETWORK DEVICE NAMING用于取代...原创 2019-11-21 14:33:09 · 284 阅读 · 0 评论 -
cmake 添加头文件目录, 链接动态、静态库
CMake支持大写、小写、混合大小写的命令。1. 添加头文件目录INCLUDE_DIRECTORIES语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用。include_directories(../.....转载 2019-10-24 10:21:48 · 883 阅读 · 0 评论 -
Cmake复制文件方法
转发链接:https://www.cnblogs.com/JoyPoint/p/11629521.html我们经常会遇到将第三方库文件复制到项目运行时文件夹,或者将子项目生成的库文件复制到项目运行时文件夹的情况,本文介绍FILE-COPY、add_custom_command、ADD_CUSTOM_TARGET三种方法及CMake COMMAND提供的命令说明。一、 FILE-COPY...转载 2019-10-23 22:47:02 · 13923 阅读 · 1 评论 -
MAVLink--结构
MAVLink源文件结构common文件夹:原始的MAVLink消息,包括各种消息的头文件common.h :定义MAVLink各个消息包中用到的枚举类型,各个消息包对应的CRC-EXTRA值、LENGTH值,包含(include)各个消息包的头文件各个消息的头文件:1)定义消息内容对应的数据结构2)打包、发送消息的便捷函数3)消息包解析并获取各个参数autopilotmega,...原创 2019-09-06 22:00:18 · 934 阅读 · 0 评论 -
Ubuntu系统添加、删除、修改用户名,修改主机名,开机用户自动登陆
Ubuntu添加用户名需要添加的用户名为“pi”$ sudo adduser pi在/home/目录下能够看到"pi"文件夹;Ubuntu删除用户需要删除的用户名为"pi"$ sudo userdel pi$ cd /home$ sudo rm -r piUbuntu修改用户名ubuntu修改用户名user为pi,修改步骤:修改sudoer文件$ sudo vim...原创 2019-08-09 15:44:05 · 858 阅读 · 0 评论 -
串口 select函数使用及实例分析
Select函数在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映原创 2019-08-06 15:16:12 · 3061 阅读 · 0 评论