Linux
文章平均质量分 74
这些年写的代码=屎山
这个作者很懒,什么都没留下…
展开
-
Linux串口编程
文章目录前言串口创建树莓派端Ubuntu 1404端串口调用文件前言第一次用串口连接两台Linux设备进行通行,慢慢的还要在串口通信的基础上实现其他的通信协议,看别人的开源代码已经看得神魂颠倒,神志不清,差点在暴毙的边缘了,该好好整理一下串口编程的一些基本知识了,帮助自己疏通一下设备说明:Ubuntu 1404:使用USB转串口 树莓派:直接使用接杜邦线的物理串口串口创建俗话说Linux下一切设备皆文件,接触越多越是能切身体会到这一点,termios结构体串口编程参考博文树莓派端原创 2021-02-02 22:02:35 · 408 阅读 · 0 评论 -
指针
常量指针与指针常量int n;const int * pc = &n; // pc定义为常量指针类型,不能通过pc改变指向地址中存的值,但pc指向地址可变// *pc = 2; // Error: n cannot be changed through p without a castpc = NULL; // OK: pc itself can ...原创 2020-02-29 12:09:52 · 785 阅读 · 0 评论 -
头文件中定义全局变量
引言这些天写的程序中用到了全局变量,一开始是在一个文件下做测试后来把文件按逻辑拆分了一下,不同的代码被放在了几个文件中,最后用Makefile来编译就遇到了今天的话题,怎么在头文件中定义全局变量呢?做法要想一个文件中的变量被一个工程中的其他多个文件同时访问就要借助extern关键字在C文件中定义在头文件中声明其他文件要用到该变量时直接引用头文件//如:parser.h中声明count、g_sigstop为全局变量#ifndef PARSER_H#define PARSER_Hexter原创 2020-08-14 21:11:05 · 5091 阅读 · 0 评论 -
ubuntu1404 下配置stunnel加密普通socket程序
安装stunnel1.安装命令apt-get install stunnel2.安装成功后,编辑/etc/default/stunnel4,将参数ENABLED设置为1... ENABLED=1... 3.打开配置文件,如果没有就创建配置文件。sudo vim /etc/stunnel/stunnel.conf4.在配置文件中新增如下内容,然后保存退出。debug = 4output = /var/log/stunnel.logsslVersion = all[redis-c原创 2020-07-29 17:54:20 · 471 阅读 · 0 评论 -
OpenSSL单向与双向认证通信
C/S中单向认证大致流程C/S中双向认证大致流程使用命令生成各自的私钥和证书客户端:openssl req -newkey rsa:512 -nodes -keyout client.key -x509 -days 5 -out client.crt服务器端:openssl req -newkey rsa:512 -nodes -keyout server.key -x509 -days 5 -out server.crt测试一下:google@ubuntu1404:~/work原创 2020-07-10 11:39:33 · 2908 阅读 · 1 评论 -
OpenSSL源码安装
安装包下载地址:https://www.openssl.org/source/#解压安装tar -zxvf openssl-1.1.1g.tar.gzcd openssl-1.1.1g/./config之后开始编译make 编译后开始安装mak install 这里出了点小问题cp: cannot create regular file ‘/usr/local/lib/libcrypto.so.1.1.new’: Permission denied make: *** [install原创 2020-07-05 17:59:54 · 1233 阅读 · 0 评论 -
Linux网络编程————多路复用
引言:多路复用模型是五种常见I/O模型之一,使用 select/poll 实现的多路复用 I/O 模型是使用最为广泛的事件驱动 I/O 模型,但是由于 select/poll 实现的不完善,这种 I/O 模型的缺陷也逐渐暴露出来。select 的工作过程如下:调用者初始化自己关心的可读、可写和异常的描述符集。比如对希望在可读时接到通知的描述符,就将其加入 readfds。描述符集的结构...原创 2020-04-02 00:45:09 · 435 阅读 · 0 评论 -
Linux网络编程————进程间通信
管道(pipe)管道的实质是一个内核缓冲区,进程以先进先出(FIFO, First In First Out)的方式从缓冲区存取数据:管道一端的进程顺序地将进程数据写入缓冲区,另一端的进程则顺序地读取数据,该缓冲区可以看做一个循环队列,读和写的位置都是自动增加的,一个数据只能被读一次,读出以后再缓冲区都不复存在了局限性:1)半双工,数据只能在一个方向流动 2)管道只能在具有公共祖先之...原创 2020-03-21 13:30:22 · 428 阅读 · 0 评论 -
Linux网络编程————多线程
产生死锁四大必要条件:1)互斥条件,又称独占条件。有些资源只能同时被一个进程所占用,而其他进程不能访问这些已被占用了的资源(哲学家的筷子)。2)请求并保持,也称部分分配条件。当进程等待其他资源时,仍然继续占有已经得到的资源。(每一个哲学家在持有一根筷子不放的同时还再请求另一根筷子,而另一根筷子有被其他哲学家持有不放)3)非抢占条件。进程获得的资源未使用完之前,其他进程不能强占,资源只能被...原创 2020-03-13 16:57:40 · 616 阅读 · 0 评论 -
Makefile编写
引言Linux下的gcc编译器不会给你自动链接自定义的文件,它只能链接一些库里面的文件,因此少量自定义头文件可以自己用gcc命令把它们链接起来但是当一个工程中定义了大量的函数和变量时我们不可能还像前面一样继续搬砖,这时就不得不用Makefile来实现整个工程的自定义编译了,虽然说很久以前就学习过Makefile的命令了,但是还是俗话说得好,三天不看,不知道啥样!所以还是记录一下以便参考和查询...原创 2020-03-07 21:27:31 · 326 阅读 · 0 评论 -
GitHub使用
引言很长一段时间没有上传代码到我的Github了,确实经过一段时间也积累了一些代码,越是经过付出得到的越是珍惜,我不想因为自己的Ubuntu崩了以前写的代码看不见踪影,所以突然想起要上传一下代码了,然而我他妈怎么有点记不清Git的操作命令了,别慌!先写个博客记录一下以后好查询当然如果是Ubuntu搞崩了,还得从下载开始对吧!下载Git:sudo apt-get install gi...原创 2020-03-05 22:41:28 · 231 阅读 · 0 评论 -
应用程序、API、系统调用、内核、内核模块、驱动程序、设备的关系
引言最近想给开发板做Linux内核移植,一进来发现水很深,有很多东西可以研究,在边移植边学习的过程中很多概念之间的关系一直有点迷糊,干脆就停一下把这块的东西学一下再出发。这里的关系总结都是本着每一层之间的联系来的,概念的概括也都是以与下一级概念关联为目的来概括的所以不是很权威,仅供参考,以理清思路为使用目的应用程序程序员调用API或者库函数编写新的程序实现目标功能构成应用程序A...原创 2020-01-11 22:44:19 · 1569 阅读 · 0 评论 -
Linux常用命令
344引言 最近得看一些shell脚本,但前面学过的一些Linux命令又使用得很有限,所以掌握得不是很全面,所以打算写一写博客记录一些自己常用的Linux命令,和一些用到过的Linux命令以供后面自己参考和学习,并将长期更新一些没接触过的Linux命令查找命令grep grep是根据文件的内容进行查找,用法可以总结为以下grep '想要在文件中...原创 2020-01-09 20:53:40 · 480 阅读 · 0 评论 -
Linux下编写头文件,编译时提示函数未定义
以前也遇到过这样的问题,现在又遇到了于是决定记录一下,以便后面查阅,参考引言:Linux下很多时候需要自己写一写函数来实现一些功能,当在多个文件下要用到同一函数总是重写该函数显然这是不现实的,这时大多数人会选择写头文件,而Linux下的GCC编译器不会自动给你链接形成可执行文件,这时需要我们自己用命令来实现链接(这里适用文件个数不多的情况,文件多的可以写MakeFile)可以看到直...原创 2019-09-22 13:20:42 · 5820 阅读 · 0 评论