![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 65
yhcasey
这个作者很懒,什么都没留下…
展开
-
【无标题】
前言 eventfd可以用于线程或者父子进程间通信,内核通过eventfd也可以向用户空间进程发消息。其核心实现是在内核空间维护一个计数器,向用户空间暴露一个与之关联的匿名fd。不同线程通过读写该fd通知或等待对方,内核通过写该fd通知用户程序。eventfd的基本用法 eventfd机制接口简单,核心只有4个,分别是创建eventfd(eventfd),写eventfd(write),读eventfd(read),监听eventfd(poll/select)/* 创建一个event转载 2022-05-10 10:41:26 · 151 阅读 · 0 评论 -
嵌入式中利用ubuntu-base构建根文件系统
嵌入式中利用ubuntu-base构建根文件系统原创 2022-04-01 15:46:41 · 4076 阅读 · 3 评论 -
linux中UDP编程
本文主要描述了linux中UDP编程中的相关细节,涉及到点对点通信,组播,广播等原创 2022-03-14 15:46:42 · 7026 阅读 · 0 评论 -
linux网络编程---IP地址
socket编程中的地址使用的弯弯绕绕原创 2022-03-04 11:25:25 · 2876 阅读 · 0 评论 -
Boost库的编译
vsomeip开发之boost库的交叉编译原创 2022-01-26 21:22:17 · 2930 阅读 · 0 评论 -
使用VMware+Ubuntu,无法切换大小写的异常处理
问题:在虚拟机VMware下,使用Ubuntu系统时,可能会出现当切换到大写字母后,无法在切换成小写。解决方案: 这是VMware的bug,解决方法是如下: 1、关闭虚拟机; 2、打开该虚拟机的目录; 3、用记事本打开虚拟机名.vmx文件,添加一行代码: mks.win32.useInjectedMagic=FALSE 4、保存后重新启动虚拟机,恢复正常...转载 2021-03-17 14:15:44 · 1807 阅读 · 1 评论 -
Linux下C程序执行shell命令并获取返回结果的方法
Linux下的C编程有以下几种方法可以执行shell命令 system()函数exec函数簇popen()函数如果还需要获取返回结果,有两种较简单方便的方法 popen()函数匿名管道1.system()函数 所需头文件:#include<stdlib.h> 函数原型:int system(const char *cmdstring); &nbs...转载 2021-03-15 10:59:38 · 1445 阅读 · 0 评论 -
嵌入式软件开发中文件格式
1.BinBin文件是最纯粹的二进制机器代码, 或者说是"顺序格式"。按照assembly code顺序翻译成binary machine code,内部没有地址标记。Bin是直接的内存映象表示,二进制文件大小即为文件所包含的数据的实际大小。 BIN文件就是直接的二进制文件,一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。可以直接在裸机上运行。2.HexIntelhex文件常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都..转载 2020-11-09 18:03:26 · 505 阅读 · 0 评论 -
ubuntu server 版本安装第二块网卡,并设置为静态IP
在使用虚拟机做嵌入式开发时,个人习惯,往往喜欢配置两个网卡,一个设置为NAT,专门用与访问外网,一个设置为host only模式,设置为静态IP的方式virtualBox中 1、ubuntu server版本 安装第二快网卡, 目的:设置静态IP,专门供宿主机远程访问 (第一块网卡提供NAT 供虚拟机上网使用)a、在virtualBox设置中,为虚拟机添加一个网卡,具体如下:b、启动虚拟机,默认情况下,使用config命令,该网卡是没有显示出来的,因为没有有效的IP信...原创 2020-10-28 10:29:41 · 984 阅读 · 0 评论 -
十六进制调试显示数据
在嵌入式开发中,不管是驱动调试还是应用协议开发,经常需要十六进制打印数据,供调试使用。以下是C实现的一个十六进制输出的函数,供参考#define BIN2CHAR(ch) (((ch) > ' ' && (ch) <= '~') ? (ch) : '.')void dumphex(unsigned char *buf, int len){ char membuf[1024] = {0}; unsigned char *ptr = (unsigned c原创 2020-10-22 19:41:15 · 799 阅读 · 0 评论 -
Linux下C语言判断文件是否存在
代码如下,#include <unistd.h>#include <stdio.h>int main(void){ if (access("AA.txt", F_OK) == 0) { printf("AA.txt exists.\n"); } else { printf("AA.txt not exists.\n"); } return 0;}简要分析使用un转载 2020-10-21 19:34:05 · 1449 阅读 · 0 评论 -
Linux stat函数和stat命令
stat函数和stat命令linux文件里的【inode = index node】解释:要理解inode必须了解磁盘和【目录项】,inode实际是连接【目录项】和磁盘的中间物质。 图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘上了。 【inode = index node】的node(承载node信息的结构体是:stat,stat的定义在后面 )里面有: 文件大小 文件的最后修改时间 文件的所属用户 文件的权限 硬链接计数(ls -l 显示出来的数字)转载 2020-10-21 19:31:41 · 682 阅读 · 0 评论 -
Vmware Linux虚拟机安装Open-vm-tools替代VMware tools
Open VM Tools (open-vm-tools) 是适用于 Linux 客户机操作系统的 VMware Tools 的开源实现。VMware 提供了操作系统特定软件包 (OSP) 充当 VMware Tools 的打包和分发机制。官方都认可了相关的工具。以后就可以安装该Open VM Tools 在实际使用过程中,相比于VMware Tools,Open VM Tools感觉是更加的流畅,比较好用,安装该工具也比较简单:1、#sudo apt instal...原创 2020-10-16 16:17:53 · 1005 阅读 · 0 评论 -
linux中指定动态库路径的方式
库文件在连接(静态库和共享 库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径【deepin可以在里面搜索出qt,因为deepin默认安装了qt程序运行依赖库】,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:...原创 2020-10-16 10:41:28 · 1384 阅读 · 0 评论 -
Linux下unlink函数的使用
一、头文件#include<unistd.h>二、函数原型int unlink(const char *pathname);三、函数介绍unlink()函数功能即为删除文件。执行unlink()函数会删除所给参数指定的文件。注意:执行unlink()函数并不一定会真正的删除文件,它先会检查文件系统中此文件的连接数是否为1,如果不是1说明此文件还有其他链接对象,因此只对此文件的连接数进行减1操作。若连接数为1,并且在此时没有任何进程打开该文件...转载 2020-10-14 18:35:14 · 907 阅读 · 0 评论 -
Linux内核配置 make menuconfig时出现缺失ncurses库
在新装的ubuntu中,配置编译Linux时,在make menuconfig时会出现缺失ncurses库的现象,错误信息如下:*** Unable to find the ncurses libraries or the*** required header files.*** 'make menuconfig' requires the ncurses libraries.*** Install ncurses (ncurses-devel) and try again.make[1原创 2020-10-12 23:28:53 · 626 阅读 · 0 评论 -
curl库的编译
以下为版本curl-7.67.0的编译,顺利通过1. 编译openssl库 具体参考openssl笔记 https://blog.csdn.net/yhcasey/article/details/1090388842. curl源码下载:wget https://curl.haxx.se/download/curl-7.67.0.tar.gz3. 配置 CPPFLAGS="-I/home/huyh/curl/openssl/build_arm/ -I/home/huyh/c...原创 2020-10-12 23:00:44 · 697 阅读 · 0 评论 -
openssl库的编译,仅总结了linux下的编译,包含X86_X64和ARM平台
在linux开发中,设置到安全认证或者数据加密时,往往设计到使用openssl。但是在有些嵌入式的环境下,系统一般不会带该库或者自带的库版本不满足开发要求,所以往往我们需要自己编译库文件,下面记录下在自己在编译过程中的步骤及遇到的问题,供日后参考使用。1、openssl库的源码下载 官网下载地址: http://distfiles.macports.org/openssl/ 进去后选择自己需要的版本,右键复制地址后,使用下面的命令下载 ...原创 2020-10-12 22:55:52 · 2033 阅读 · 1 评论 -
Linux-镜像源汇总
企业站搜狐:http://mirrors.sohu.com/网易:http://mirrors.163.com/阿里云:http://mirrors.aliyun.com/腾讯:http://android-mirror.bugly.qq.com:8080/(仅针对APP开发的软件,限流,不推荐)淘宝:http://npm.taobao.org/教育站上海交通大学:http://ftp.sjtu.edu.cn/html/resources.xml(部分移动运营商出口状况不佳,无法访问)转载 2020-10-10 13:59:14 · 1311 阅读 · 0 评论 -
互斥锁pthread_mutex_init()函数
linux下为了多线程同步,通常用到锁的概念。posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。即对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。使用互斥锁(互斥)可以使线程按顺序执行。通常,互斥锁通过确保一次只有一个线程执行代码的临界段来同步多个转载 2020-09-28 10:56:48 · 1005 阅读 · 0 评论 -
Linux环境变量设置方法PATH、动态库的查找路径方法LD_LIBRARY_PATH
PATH 可执行程序的查找路径查看当前环境变量:echo $PATH设置:方法一:export PATH=PATH:/XXX 但是退出当前终端后就失效方法二:修改 ~/.bashrc 或 ~/.bash_profile或系统级别的/etc/profile1. 在其中添加例如export PATH=/opt/ActivePython/bin:$PATH2. source .bashrc (Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于...转载 2020-09-24 10:17:00 · 1202 阅读 · 0 评论 -
动态库中调用静态库时,静态库的编译
我们在编译一个动态库时,而这个动态库有时需要引用其它的静态库,可能会出现如下的问题:1、编译动态库时不会报错,但是在其它程序调用该动态库时,会出现undefined reference的错误,而且我们在使用nm命令查看该动态库时,也可以找到对应的函数信息,但是调用时就是会报错,其原因是该静态库在编译时没有加入-fPIC选项,解决办法就是在编译该静态库时加入该选项即可。...原创 2020-09-24 10:08:26 · 695 阅读 · 0 评论