780 1 分钟

Version:Gitea 1.22.4 # 介绍 作为开发人员,想必正在使用 GitHub 了吧,或者没用过也听说过它的大名;而对于自己的项目,难免避免不了代码管理,如果不想受限于 GitHub 的服务器网络或者想建立一个小团队的 Git 服务,因此能有一个与 GitHub 相仿的工具将大大提高处理效率;而 Gitea 正是这样的工具,它以轻量、极易、快速著称,能够高效而轻松的帮助团队和开发者。 官网:https://docs.gitea.com/zh-cn/ # 安装 为你的 gitea 存放创建数据和配置文件夹: # $PATH 为你存储盘的路径mkdir -p...
1.8k 2 分钟

在使用该项目之前,你必须至少拥有一个可支配的域名,否则下文对您来说仅是一篇不同文章,而非操作笔记。 Version:DDNS-GO v6.7.6 # 介绍 ddns-go 是一个简易便捷的自动更新域名解析的工具,支持多平台、多架构、多服务商、多域名。 # 特性 支持 Mac、Windows、Linux 系统,支持 ARM、x86 架构 支持的域名服务商 阿里云 腾讯云 Dnspod Cloudflare 华为云 Callback 百度云 Porkbun GoDaddy Namecheap NameSilo Dynadot DNSLA 支持接口 / 网卡 / 命令获取...
10k 10 分钟

# 线程管理 # 基本操作 # pthread_create 创建一个线程 #include <pthread.h>int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void *), void *restrict arg);Parameter: thread --- 返回一个唯一的线程 ID attr --- 可以指定线程属性对象,或者以 NULL 为缺省值 start_routine ---...
2.5k 3 分钟

# 串口测试 1、获取串口号 一般串口都是以 /dev/ttyS# 的格式显示,所以第一个连接的串口就是 /dev/ttyS0 ,第二个连接的串口就是 /dev/ttyS1 … 以此类推。 USB 转串口适配,没有额外驱动,它们会显示为 /dev/ttyUSB# ,如 /dev/ttyUSB0 。 可以通过如下命令获取: ls -l /dev/ttyS*note: 一般来说,通过 ls -l /dev/ttyS* 获取出来的串口是包含虚拟串口和存在但未连接的串口,这时候可以通过 cat /proc/tty/driver/serial 来获取真实连接的串口,或者使用 dmesg | grep...
3.8k 4 分钟

# 关键字 # weak 关键字 一般用法: __attribute__((weak)) ,用于定义或声明对应的函数是一个 weak 属性。 在 Linux 开发环境中,有强符号和弱符号,符号简单来说就是函数、变量的名字,对于全局(非局部、非 static )的函数和变量,能不能重名是有一定规矩的,强、弱符号就是针对这些全局函数和变量来说的。 符号类型 对象 强 函数名,赋初值的全局变量 弱 未初始化的全局变量 当代码中同时存在多个强或弱的全局变量时,要遵守如下规则: 强符号只能定义一次,否则编译错误; 强弱符号同时存在,以强符号为准; 没有强符号,则从多个弱符号中任选一个,用...
『转载』 830 1 分钟

# 功能 _exit () :退出程序。 exit(0):运行正常退出程序; exit(1):运行异常退出程序; return():返回函数,若在主函数中,则会退出函数并返回值。 # _exit () 和 exit () 区别 exit () 会将缓冲区的数据写完再结束进程到内核中去(退出进程会清理 I/O 缓冲区)。 _exit () 直接结束进程进入到内核中。 exit () 函数定义在 stdlib.h 中,_exit () 定义在 unistd.h 中。 图示: 示例: _exit() #include <stdio.h>#include...
1.7k 2 分钟

方法一: 通过在 虚拟机设置 中的 硬盘 项,进行 碎片整理 和 压缩 处理。 方法二: 清空虚拟机系统的回收站 在 Ubuntu 下,删除了某些文件,而当准备清空回收站的时候,却发现无法清空,打开回收站,在里面进行文件删除时提示 “Failed to delete the item from the trash”。 解决方法如下: 打开桌面的主文件夹,按组合键 Ctrl+H(显示隐藏文件),找到以下路径: /home/user/.local/share/Trash (注:user 是用户名,根据你的用户名而变)。 在上面的路径下点击鼠标右键,选择 “在终端中打开”。 运行命令 sudo...
1.7k 2 分钟

Version:Calibre Web 0.6.23 # 介绍 calibre-web 是基于著名开源电子书管理工具 calibre 的 calibre-server 内容服务器提供的接口,开发了 calibre 的 Web 端 calibre-web,并提供了 Docker 安装包,使得 calibre 和 calibre-web 实现本地图书管理和在线访问。 项目:https://github.com/janeczku/calibre-web # 安装 为你的 calibre-web 存放创建数据和配置文件夹: # $PATH 为你存储盘的路径mkdir -p...
1.2k 1 分钟

如果你喜欢敲命令来操作 Docker,那么这点你可以跳过了,否则可以安装 portainer 对 Docker 进行页面管理。 Version:portainer-ce 社区版 2.19.5 # 介绍 portainer 管理面板是一个简洁的 dockers 容器可视化操作界面,它把常规的命令操作搬到了显示面板上,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。 具体介绍可以参看官网:Kubernetes and Docker...
『转载』 8k 8 分钟

# 数据结构定义 # 比较函数指针 typedef int (zlist_compare_fn) ( void *item1, void *item2);# 析构函数指针 typedef void (zlist_free_fn) ( void *data);# 节点 typedef struct _node_t { struct _node_t *next; // 指向下一个节点 void *item; // 节点当中的元素 zlist_free_fn *free_fn; // 元素对应的析构函数} node_t;# 链表 struct _zlist_t...