
linux
文章平均质量分 60
jiletianzun
一个性格开朗,技术一般还ok,喜欢做自己。
展开
-
最容易上手的----vs远程编译、调试linux项目配置
代码】最容易上手的----vs远程编译、调试linux项目配置。原创 2022-08-08 14:25:32 · 1452 阅读 · 0 评论 -
linux动态库或应用程序执行提示缺少动态库的一般做法
1.查看当前应用程序所在的文件路径(例如:/home/linux/aaa)2.使用ldd 应用程序或动态库名称,查看动态库连接是否存在not fount3.查看应用程序或动态库名称所在的文件夹里是否有第2条缺失的动态库,如果有替换成当前路径下的库路径(使用添加环境变量来实现)4.查看应用程序或动态库其他已链接的动态库在应用程序或动态库名称所在的文件夹里是否有该动态库,如果有替换成当前路径下的库路径(使用添加环境变量来实现)5.查看rc.local /home/xxx/.bashrc ...原创 2021-04-19 11:30:26 · 1469 阅读 · 0 评论 -
llinux下添加脚本所在路径到环境变量并自动启动同名的程序
使用方式:./my.sh注意事项:把my.sh脚本放到同名my应用程序同级别路径 脚本和应用程序要赋值可执行权限my.sh文件内容:#!/bin/shappname=`basename $0 | sed s,\.sh$,,`dirname=`dirname $0`tmp="${dirname#?}"if [ "${dirname%$tmp}" != "/" ]; thendirname=$PWD/$dirnamefiLD_...原创 2021-04-19 11:02:56 · 414 阅读 · 1 评论 -
linux下可执行文件和动态库的依赖库自动拷贝
使用方式:sudo chmod 777 copy.sh ./copylib.sh xxx.so/xxx应用程序名copylib.sh 文件内容:#!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))$(mkdir $LibDir)for Variable in $...原创 2021-04-19 10:56:52 · 669 阅读 · 0 评论 -
linux桌面程序开机启动(有窗口界面的程序)
1. 进入 cd /home/xxx/.config(xxx为用户名)2. 新建autostart文件夹(这个自己新建)3.进入到autostart文件夹4.新建一个后缀为desktop的文件内容为[Desktop Entry]Exec=(自己的应用程序绝对路径)Type=Application例如我用的是数梅派:cd /home/pi/.configsudo mkdir autostartcd autostartsudo touch my.desktopsudo vi my.de原创 2021-04-19 10:52:58 · 1539 阅读 · 0 评论 -
2021-4-12 linux下获取网路ipv4/ipv6地址 子网掩码 广播地址
#include <iostream>#include<sys/types.h>#include<sys/socket.h>#include<unistd.h>#include<string.h>#include<arpa/inet.h>#include<netdb.h>#include<netinet/in.h>#include<ifaddrs.h>using namespace原创 2021-04-12 17:04:14 · 679 阅读 · 0 评论 -
2021-3-30linux串口通讯例子
说明:以下用到的是阻塞的文件描述符测试例子用的是串口/dev/ttyUSB0,这个描述符单独设置成阻塞模式,其他几种情况是非阻塞模式#include <iostream>#include<sys/types.h>#include<unistd.h>#include<fcntl.h>#include<sys/termios.h>#include<string.h>#include<string>using原创 2021-03-30 17:42:03 · 375 阅读 · 0 评论 -
linux epoll 边沿触发模式+非阻塞模式
/*边沿触发模式+非阻塞模式注意点:1.监听描述符设置为阻塞模式,原因阻塞等待客户端连接2.新连接的网络描述符设置成非阻塞,监听事件要加上边沿触发例如:ev.events = EPOLLIN | EPOLLET3.读取方式需要循环读取4.非阻塞方式,读取数据的方法read recv等函数是不阻塞的。读取不到数据会把errno 设置为EAGAIN,这里需要做个判断当errno ==EAGAIN相等时,退出循环(原因是数据已经读取完了)*/#include <...原创 2021-03-17 18:08:54 · 641 阅读 · 0 评论 -
linux epoll 客户端代码LT模式
#include <iostream>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<netinet/ip.h>#include<unistd.h>#include<string.h>#include <ctype.h>using namespace std;int main(){ st..原创 2021-03-17 17:14:42 · 155 阅读 · 0 评论 -
linux epoll 服务器代码LT模式
#include <stdio.h>#include <sys/types.h>#include <sys/epoll.h>#include "wrap.hpp"#include <ctype.h>int main(int argc, char const *argv[]){ //创建套接字,绑定 int lfd = tcp4bind(8888,NULL); //监听 listen(lfd,128); //创...原创 2021-03-17 17:14:02 · 184 阅读 · 0 评论 -
linux 网络规避错误类
说明: 下面在用的时候,直接新建一个hpp文件,把代码考到文件中。用的时候,#include"路径/warp.hpp" ,hpp文件具体路径看hpp文件放的位置#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <sys/socket.h>#includ...原创 2021-03-17 17:12:36 · 503 阅读 · 0 评论 -
linux 多个客户端同时与服务器通讯(服务端)
服务端:#include <iostream>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<netinet/ip.h>#include<string.h>#include<arpa/inet.h>#include<unistd.h>#include<pthread.h>#i...原创 2021-03-16 16:44:56 · 471 阅读 · 0 评论 -
linux 多个客户端同时与服务器通讯(客户端)
/*重要说明,采用了多线程。线程设置为分离。*/客户端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include<arpa/inet.h> //点分十进制转换头文件#include<iostrea.原创 2021-03-16 16:39:54 · 397 阅读 · 0 评论 -
linux 信号量
说明:下面例子代码我采取三次获取信号量值 第一次,获取的是当前线程信号量没减之前的值 第二次,获取的是当前线程信号量值减过一次后的值 第三次,获取的是当前线程信号量值增加一次后的值重点说明,线程创建是无序的,具体你可以代码结合截图参考#include <iostream>#include<pthread.h>#include<unistd.h>#include<semaphore.h>#i...原创 2021-03-11 19:28:01 · 169 阅读 · 0 评论 -
linux 条件变量 线程锁 线程
#include <iostream>#include<pthread.h>#include<unistd.h>#include<time.h>#include<stdlib.h>using namespace std;/*测试条件变量用到条件变量和线程锁 链表例子为生产者和消费者,原则是生产者有生产出物品,消费者才可以消费*///结构体typedef struct _node{ int data; s...原创 2021-03-11 16:56:45 · 80 阅读 · 0 评论 -
linux 读写锁例子
#include <stdlib.h>#include <pthread.h>//job结构体定义struct job { struct job *j_next; struct job *j_prev; pthread_t j_id; /* tells which thread handles this job */ /* ... more stuff here ... */};//作业队列struct queue { st...转载 2021-03-11 12:12:58 · 271 阅读 · 0 评论 -
linux 守护线程
作用:每隔两秒,把时间转成字符串写入文件例子:#include <iostream>#include<signal.h>#include<time.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<sys/types.h>#include <sys/time.h>#include <sys/stat.原创 2021-03-10 15:11:30 · 466 阅读 · 0 评论 -
linux mmap函数的使用注意事项
注意点说明,可以参考给的代码例子:1.mmap使用前需要一次读取文件的操作2.作为内存映射的文件,文件本身要存在,文件要具有权限(简单体现 linux上文件上不能有把锁的图表)3.作为内存映射的文件,文件不能为空4.通过内存映射把内容写回文件,可以写入的内容长度,取决于文件映射到内存的长度5.通过内存映射把内容写回文件,可以写入的内容存在中文,就必须考虑中文占两字节,如果映射的文件长度小于写入的内容长度,中文会存在乱码 int fd = open("123.txt...原创 2021-03-08 17:44:00 · 545 阅读 · 0 评论 -
linux循环遍历获取文件属性
//filePath 文件目录路径//存放文件名的vector集合引用int getFileNameAndPahth(string filePath,vector<string>&saveAllFileName){ if(filePath.empty()) //判断文件是否为空 { cout<<"filepath is NULL"<<endl; return -2; } if(filePath[...原创 2021-03-04 15:50:06 · 250 阅读 · 2 评论 -
2020-12-18 linux 时间格式化显示 linux终端隐藏光标
格式化时间 printf 隐藏光标原创 2020-12-18 18:27:47 · 127 阅读 · 1 评论