Linux
文章平均质量分 69
Robben.Han
一个喜欢投资的程序猿
展开
-
Linux下修改文件系统的大小等属性
默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。tmpfs有以下优势:1.动态文件系统的大小。2.tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读.转载 2021-07-12 16:49:54 · 1141 阅读 · 0 评论 -
Linux下设置开机自动启动-shell的几种方法
设置开机启动方式一最简单粗暴的方式直接在脚本/etc/rc.d/rc.local(和/etc/rc.local是同一个文件,软链)末尾添加自己的脚本然后,增加脚本执行权限chmod +x /etc/rc.d/rc.local设置开机启动方式二第二种方式是在crontab中设置crontab -e@reboot /home/user/test.sh设置开机启动的方式三...原创 2019-04-19 11:38:02 · 43121 阅读 · 0 评论 -
linux下永久修改设备权限/dev/ttyS*
rc.local /etc/rc.local系统脚本,系统启动后执行,与是否登陆无关,所以优先级高于profile,可以指定执行程序的权限例如:修改ttyS0的权限chomd 777 /dev/ttyS0...原创 2020-03-31 11:35:13 · 3316 阅读 · 4 评论 -
Linux的route命令使用总结
1、 查看本机路由表route2、添加一个默认路由route add default gw 192.168.1.1当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。3、 删除一个默认路由route del default gw 192.168.1.14、route 命令...原创 2020-01-10 13:56:23 · 326 阅读 · 0 评论 -
Linux下的串口通讯调试工具,程序代码示例
嵌入式领域,串口通讯是使用非常多的一种通讯协议了,所以一块串口通讯调试工具自然必不可少。这里主要是针对的嵌入式Linux系统,ubuntu之类的网上有很多,就不需要看下面的了。环境:Linux + c/c++说明:启动后,选择read或者write模式,整个通讯是基于16进制解析的,不支持其他的哦。write效果如下图:read效果如下图:核心代码:if(re...原创 2019-12-30 17:13:55 · 1224 阅读 · 31 评论 -
stty命令用法(设置串口)
stty用法:stty [-F 设备 | --file=设备] [设置]... 或:stty [-F 设备 | --file=设备] [-a|--all] 或:stty [-F 设备 | --file=设备] [-g|--save]输出或修改终端参数。 -a, --all 以可读性较好的方式输出全部当前设置 -g, --save ...转载 2019-12-19 11:49:58 · 3055 阅读 · 0 评论 -
Linux下通过jsoncpp和socket解析和发送json数据的使用例程
目录1、json数据解析2、json数据生成3、json类型判断函数,判断key的类型函数1、json数据解析 Json::CharReaderBuilder rbuilder; Json::CharReader* reader = rbuilder.newCharReader(); Json::Value root; bool pa...原创 2019-11-19 16:01:29 · 1260 阅读 · 0 评论 -
使用visual stdio code开发Linux系统下的c/c++程序
首先说明,本文方法使用vscode作为编辑器,编译还是在Linux下进行,目前vscode或者vs等IDE开发Linux下的程序,都还不够成熟,只能编译相对简单的程序,部分复杂的功能无法使用,所以这里还是使用Linux系统本身去编译。其次,Linux下也有vscode的版本,但是个人感觉不好用,可能是软件的适配做的不好吧。环境:window10 +visual stdio code + ...原创 2019-11-05 14:14:51 · 836 阅读 · 0 评论 -
Linux下多线程的线程保护
目录一 开发环境二 互斥锁一 开发环境系统:Ubuntu16.04线程库:pthread语言:c/c++Linux下的线程保护,最常用的是互斥锁、条件变量、信号量和读写锁。先来试一下互斥锁吧二 互斥锁多线程之间可能需要互斥的访问一些全局变量,这就需要互斥的来访问,这些需要共享访问的字段被称作是临界资源,访问临界资源的程序段称作是临界区。实现线程间的互...原创 2019-10-29 11:02:29 · 1018 阅读 · 0 评论 -
关于tcp/udp数据包大小的选择问题
最近再使用UDP通讯时,有组数据是200029字节,测试发现server收不到数据查看sendto的返回结果,以及error信息:发现是发送失败,数组太大了,message too long,原来UDP一个包最大是65535个字节,出去各种ip头等的开销,最大发送数组为65507。(IP包头有一个16bit的长度, 对应的二进制最大值是2^16 -1,也就是说一个IP包整个长度的...原创 2019-10-24 10:10:18 · 1276 阅读 · 0 评论 -
Linux下的信号介绍
1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到S...原创 2019-10-21 14:47:11 · 288 阅读 · 0 评论 -
Linux下永久修改变量的方法
在使用armv5-linux-gcc的时候,老是提示:warning: environment variable 'STAGING_DIR' not defined首先找到此gcc的路径,然后通过:export STAGING_DIR=/usr/local/atmel/arm_v5te_gcc-4.8-linaro_eglibc_eabi/bin/::$STAGING_DIR这样...原创 2019-10-17 15:40:34 · 541 阅读 · 0 评论 -
linux(Ubuntu)下.dotnet core 安装运行和报错解决
目录1、.net core runtime环境安装2、.net core程序运行3、报错解决运行提示:Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want ...原创 2019-10-10 10:47:45 · 5052 阅读 · 1 评论 -
Linux-C/C++编程实现log显示系统时间示例程序
直接上代码吧:运行效果:原创 2019-09-24 14:07:54 · 547 阅读 · 0 评论 -
Linux的目录结构及每个目录的详细介绍
【常见目录说明】 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录...转载 2019-04-17 09:22:49 · 596 阅读 · 0 评论 -
虚拟机Ubuntu提示Host SMBus controller not enabled的解决办法
sudo vim /etc/modprobe.d/blacklist.conf 末行插入:blacklist i2c_piix4 reboot以上,问题解决。原创 2019-09-16 09:18:33 · 907 阅读 · 0 评论 -
Makefile常用语法
1、Makefile基本格式:make所看到的第一项规则会被当做默认规则使用。一个规则可分成三个部分:目标:依赖1 依赖2。。。命令注意:命令前必须使用有一个制表符(<TAB>)。foo.o: foo.c foo.h gcc -c foo.c当要求make执行一条规则时,它首先找到目标和前提条件指出的文件。如果没有任何前提条件都有一条关联...转载 2019-07-19 10:39:30 · 7739 阅读 · 0 评论 -
Linux-c/c++多线程编程示例
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork。一个重要的线程创建函数原型:#include <pth...转载 2019-07-19 13:23:49 · 1535 阅读 · 0 评论 -
linux下通过程序获取和修改IP等信息的函数ioctl
在linux下 获取,修改本机IP地址的两个函数//获取本机IP地址函数QStringGetLocalIp() { intsock_get_ip; charipaddr[50]; structsockaddr_in*sin; structifreqifr_ip; ...转载 2019-07-24 17:07:58 · 1362 阅读 · 0 评论 -
Linux下常用命令汇总整理(不定期更新)
目录uname -a查看系统的版本信息,多种发行版的Linux都能用ifconfig eth0 192.168.2.10netmask 255.255.255.0route 命令ll显示的文件属性setuid的作用chmod 755 和chmod 4755和chmod 2755find 查找命令kill 和 killall链接创建命令:ln (ln -s ...原创 2019-07-29 14:38:10 · 1047 阅读 · 0 评论 -
Linux-socket编程之非阻塞tcp程序示例和UDP程序示例
目录1、TCP通讯2、UDP通讯1、TCP通讯tcp是可靠通讯,需要先建立连接,再发送数据。connect阻塞模式下,一般是默认75s,但是因为有线程切换等原因,实际时间会更长。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/type...原创 2019-08-16 09:39:13 · 1743 阅读 · 0 评论 -
pthread多线程时sigalrm和setitimer的使用
目录1、signal2、signal的注册和捕捉3、setitimer1、signal信号定义在signal.h头文件中,信号名都定义为正整数。具体的信号名称可以使用kill -l来查看信号的名字以及序号,信号是从1开始编号的,不存在0号信号。kill对于信号0有特殊的应用,kill命令就是发送信号的。信号的处理有三种方法,分别是:忽略、捕捉和默认动作忽略信...原创 2019-08-12 10:20:58 · 2079 阅读 · 1 评论 -
pthread多线程模式下的信号处理机制(sigwait)及示例
目录1. sigwait函数2. pthread_sigmask函数3. pthread_kill函数4. 调用sigwait同步等待的信号必须在调用线程中被屏蔽5. 代码示例在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异...转载 2019-08-09 15:22:48 · 3376 阅读 · 0 评论 -
linux多线程编程,替代sleep的几种方式
我只想要进程的某个线程休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能就达不到,我们想要的效果了。 目前我知道有三种方式:1 usleep这个是轻量级的, 听说能可一实现线程休眠, 我个人目前使用的这种。2 select这个可以,我也用过这种方式, 它是在轮询。3pthread_cond_timedwait采用pthread...转载 2019-08-13 10:10:54 · 1549 阅读 · 0 评论 -
嵌入式Linux下设置永久ip和临时ip地址的几种方法
目录永久-1:永久-2:临时:(reboot后设置失效)语法:永久-1:编辑文件:vi /etc/profile,添加:ifconfigeth0192.168.1.100 netmask255.255.255.0保存退出::wq重启:reboot或者service network restart永久-2:编辑文件:vi /etc...原创 2019-09-02 09:36:38 · 4918 阅读 · 0 评论 -
Makefile.am编写规则
目录概念1、编译可执行文件2、编译动态库文件3、编译静态库文件概念 Makefile.am是比Makefile更高层次的规则只需要指定要生成什么目标,依赖于什么文件,和要安装到什么目录。automake会根据Makefile.am来自动生成Makefile.in 。Makefile.am里边使用的都是宏,常见的有.PROGRAMS ;表示可执行文件.LIBR...转载 2019-08-30 15:24:17 · 1479 阅读 · 0 评论 -
gcc指定头文件路径及动态链接库路径
目录一.#include <>与#include “”二.gcc指定头文件的三种情况:三.Linux指定动态库路径四、gcc -l 对动态库和静态库的使用方法是一样的,同一个库如果同时存在动态库和静态库,优先链接动态库,除非使用--static强制使用静态库。本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题。另外,还总结了,gcc动态链接的方...转载 2019-09-03 10:06:52 · 1343 阅读 · 0 评论 -
Linux开机运行脚本profile,rc.local
目录profilerc.local自定义脚本:my.bash profile 用户脚本,在用户登陆后执行,只有用户权限,所以只能执行用户权限下的程序,不登录就不会执行。 rc.local 系统脚本,系统启动后执行,与是否登陆无关,所以优先级高于profile,可以指定执行程序的权限 自定义脚本:my.bash 90表明一个优先级,越高表示...原创 2019-09-03 11:01:49 · 2441 阅读 · 0 评论 -
arm-linux-gnueabihf-gcc编译带ssl和lcrypto库时,找不到变量和库的解决方法
程序里使用了openssl的部分内容,系统装的是libssl-devsudo apt-get install libssl-dev使用gcc编译时,以前正常,程序调试ok后,用交叉编译工具编译到目标板时报错:看来是交叉工具的默认路径没有包含openssl的头文件,手动指定一下ARMINCLUDES := -I/usr/include/ARMINCLUDES += -I/...原创 2019-09-09 09:12:11 · 1908 阅读 · 0 评论 -
Makefile选项说明
-D: 条件选择编译-I : 头文件搜索路径-l: 连接静态库-L: 连接库的路径-Wall: 打开警告开关AR: 静态库打包命令的名字,缺省值是ar。ARFLAGS: 静态库打包的选项,缺省值rvAS:汇编器的名字,缺省值是as。ASFLAGS:汇编器的选项,没有定义。CC:C编译器的名字,缺省值是cc。CFLAGS:C编译器的选项,没有定义。CXX:C++编译器...转载 2019-07-19 10:21:02 · 1227 阅读 · 0 评论