Linux
文章平均质量分 65
无聊到发博客的菜鸟
加油吧
展开
-
I.MX6ULL裸机开发之串口篇
配置I.MX6ULL串口原创 2024-08-01 09:30:20 · 330 阅读 · 0 评论 -
I.MX6ULL裸机开发之时钟篇
在嵌入式开发中,时钟配置是至关重要的一部分。它影响整个系统的运行速度、定时和能耗等多个方面。作为一位合格的嵌入式开发工程师,总不能连内核、外设、总线各自的频率都不清晰吧?原创 2024-08-01 09:29:01 · 807 阅读 · 0 评论 -
Makefile教程(附通用模板)
Makefile教程(附通用模板)原创 2024-06-03 10:28:17 · 1186 阅读 · 0 评论 -
POSIX消息队列详解与示例
详解mq_open()#include<fcntl.h>#include<sys/stat.h>#include<mqueue.h>mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr);// 返回消息队列描述符,失败返回-1在fork()中子进程会接收其父进程的消息队列描述符的副本,并且这些描述符会引用同样 的打开着的消息队列描述符。子进程不会继承其父原创 2022-05-16 20:57:25 · 2576 阅读 · 0 评论 -
计算机网络之TCP数据格式(二)
数据格式序列号确认应答号数据偏移即TCP首部的长度。如果该字段的值为5,那说明从TCP包的最一开始到20字节为止都是TCP首部 ,余下的部分为TCP数据。保留一般为0,不为0也不丢弃数据。控制位窗口大小校验和见文末的Wireshark实例分析。紧急指针选项类型2——MSS表示最大段长度类型3——WS表示窗口比例,窗口大小只有2字节,最大只有64KB,对于现在的技术来说太小了。所以实际窗口大小= 窗口大小 * 2^WS例如窗口大小为8212 WS原创 2022-01-19 17:01:23 · 3780 阅读 · 4 评论 -
C语言 mktime() gmtime()实现——亲测正确性
写此文章是因为有的嵌入式设备编程时不支持<time.h>,所以有些时间转换的函数必须自己实现。原创 2022-01-05 15:15:31 · 1843 阅读 · 10 评论 -
Linux网络编程之UDP Socket(二)
先看效果程序会将收到的信息又发送给对端流程程序源码#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include <errno.h>#include <sys/socket.h>#include <arpa/inet.h>#define HOST "192.168.1.164"原创 2021-12-20 20:53:24 · 301 阅读 · 0 评论 -
Linux网络编程之TCP Socket(一)
先看效果客户端发送服务端接收客户端源码连接成功后,可通过键盘输入内容发送到服务端。#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#define HOST "127.0.0.1" // 服务器原创 2021-12-20 19:59:07 · 500 阅读 · 0 评论 -
C语言 有颜色有等级的日志实现
先看效果只需要调用log.h头文件即可,有LOG_DEBUG,LOG_INFO,LOG_WARN,LOG_ERR四个接口。其中有三个需要配置的地方。①:配置输出的接口,不同平台打印函数不一样;②:LOG等级,DEBUG INFO WARN ERR四个等级依次增高,可以选择输出的最低等级;③:地址分隔符。源码/********************************************************************************* *Autho原创 2021-11-12 16:11:10 · 1539 阅读 · 0 评论 -
Linux网络编程之域名解析DNS(三)
简介域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。常用的域名解析函数有getaddrinfo()和gethostbyname(),一些资料书认为gethostbyname()已经过时且不支持IPv6,更推荐使用getaddrinfo()。gethostbyname()的衍生版本g原创 2021-09-16 15:09:24 · 1097 阅读 · 0 评论 -
C语言FIFO
简介First Input First Output的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。代码fifo.h/********************************************************************************* *Author: *Date: 2021.05.18 *Description: fi原创 2021-05-18 19:50:01 · 839 阅读 · 0 评论 -
Linux C sqlite3操作二进制文件
一、基本概念对于跟我差不多的初学者来说,有点分不清 SQL MySQL Sqlite3的区别和联系,百度了一圈,简单来说就是:SQL是用于所有数据库的基本语言,MySQL和Sqlite3是两种不同的数据库,MySQL更多的用于服务器,Sqlite3更多的用于嵌入式设备。二、基本语法①安装sqlite3sudo apt-get install sqlite3②创建表...原创 2021-04-02 19:31:31 · 364 阅读 · 0 评论 -
Linux C select()函数
1.功能 select 机制会监听它所负责的所有 socket,当其中一个 socket 或者多个 socket 可读或者可写的时候,它就会返回,而如果所有的 socket 都是不可读或者不可写的时候,这个进程就会被阻塞,直到超时或者 socket 可读写,当 select 函数返回后,可以通过遍历 fdset,来找到就绪的描述符。 简单点说就是,假如想在一个线程处理两个阻塞的socket时,就得用select()函数。2.函数原型int select(int maxfdp1,fd_set *r原创 2021-04-01 22:31:32 · 1001 阅读 · 0 评论 -
C语言常用时间相关函数
首先讲一下#include <time.h>和#include <sys/time.h>的区别,前者是C99标准库函数,后者是Linux系统函数,如果Windows平台装了MinGW(Minimalist GNU for Windows)工具也是可以使用<sys/time.h>的,<sys/time.h>中调用了<time.h>。获取时间戳-time函数原型:time_t time(time_t *timer)变量time_t实际上是l原创 2020-11-30 11:31:33 · 1976 阅读 · 0 评论 -
ARM平台移植openssl1.1.1g
1.openssl简介在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。原创 2020-09-30 17:02:22 · 2501 阅读 · 3 评论 -
linux搭建NFS服务
1.NFS简介网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进原创 2020-08-04 22:41:53 · 1012 阅读 · 0 评论