自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (9)
  • 收藏
  • 关注

原创 UNIX环境高级编程

unix环境高级编程笔记

2021-11-18 21:01:33 621

原创 QBitmap、QPixmap、QImage 和 QPicture 使用方法和特点以及转换

QBitmap、QPixmap、QImage 和 QPicture 都是 Qt 中用来处理图像和绘制的类。它们各自有不同的用途和特点,下面是每个类的详细解释:

2025-04-10 14:44:20 901

原创 qt自定义信号槽需要注意的事项

如果你使用自定义类型作为信号和槽的参数,确保该自定义类型已经使用 Q_DECLARE_METATYPE 宏声明,以便 Qt 的元对象系统可以正确处理它。// 自定义类型然后你可以在信号和槽中使用这个自定义类型。

2025-04-07 14:30:02 950

原创 Qt 资源文件(.qrc 文件)

Qt 资源文件(.qrc)是一个强大的工具,可以将资源文件嵌入到应用程序中,简化部署并避免外部文件路径问题。通过将常用的资源(如图片、样式表、配置文件等)包含在可执行文件中,可以提高程序的可移植性和可靠性。使用 .qrc 文件时,只需要将资源文件的路径添加到 .qrc 文件中,然后通过 😕 路径在代码中访问这些资源。这样,程序就能在没有外部文件的情况下运行,确保资源不会丢失。

2025-04-07 13:35:04 792

原创 通过 PAM 模块集成外部服务来实现用户身份认证

PAM(Pluggable Authentication Module)是一种认证框架,允许开发者根据不同的需求编写自定义的认证逻辑。在 Linux 系统中,PAM 被广泛应用于 SSH、登录、sudo 等认证场景。通过编写自定义 PAM 模块,你可以在认证过程中调用外部服务,通常是通过 TCP 或 UDP 套接字进行通信,以便从外部系统验证用户的凭证(如用户名和密码)。为了与外部服务器通信,我们需要定义一个请求结构体和响应结构体,来封装发送和接收的数据。

2025-04-02 11:22:10 823

原创 在 Linux 中,可以使用 inotify 机制来监控目录中的文件创建事件

在 Linux 中,可以使用 inotify 机制来监控目录中的文件创建事件

2025-04-02 10:45:04 413

原创 C++ STL(标准模板库)各种容器的使用场景

C++ STL(标准模板库)各种容器的使用场景

2025-04-02 10:10:00 703

原创 c/c++ 回调函数

c/c++ 回调函数

2025-04-02 09:37:32 353

原创 c++11新特性

c++ 新特性

2024-12-12 09:53:27 882

原创 在 C++ 中,深拷贝赋值操作符(operator=)用于实现对象的赋值操作。

在 C++ 中,深拷贝赋值操作符(operator=)用于实现对象的赋值操作。

2024-12-06 17:54:17 405

原创 c++ 判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围

判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围

2024-12-06 17:34:14 633

原创 在 Ubuntu 22.04 上部署Apache 服务, 访问一张照片

你可以在 Apache 的默认根目录 /var/www/html 中创建一个简单的 HTML 文件,来测试访问是否正常。保存文件后,访问 http://your_server_ip/index.html,查看是否能成功加载照片。将 your_server_ip 替换为你的服务器 IP 地址,photo.jpg 替换为你的照片文件名。将你的照片上传到刚刚创建的目录中。请确保将 /path/to/your/photo.jpg 替换为你实际照片的路径。现在,你可以通过浏览器访问照片。

2024-10-31 17:59:13 366

原创 (十) 进程间通信(IPC)

管道分为命名管道(FIFO)和匿名管道(PIPE),无论是哪种管道,都是由内核帮你创建和维护的。

2024-10-25 17:47:57 776

原创 (九) 高级IO

高级 IO 部分有个很重要的概念是:非阻塞 I/O在14章之前,我们讨论的所有函数都是阻塞的函数,例如 read(2) 函数读取设备时,设备中如果没有充足的数据,那么 read(2) 函数就会阻塞等待,直到有数据可读再返回。当 IO 操作时出现了错误的时候,我们之前在讨论信号的博文中提到过会出现假错的情况。那么从学了非阻塞 I/O 为止我们一共遇到了两种假错的情况:EINTR:被信号打断,阻塞时会遇到。EAGAIN:非阻塞形式操作失败。

2024-10-25 17:04:48 932

原创 (八)线程

内容:1 线程的概念2 线程的创建、线程的终止、线程的取消选项、栈的清理3 线程同步4 线程属性、线程同步的属性6 重入、线程与信号、线程与fork。

2024-10-25 15:34:34 838

原创 (七)信号

信号不是中断,中断只能由硬件产生,信号是模拟硬件中断的原理在软件层面上进行的实现。可以使用 kill(1) 命令向其它进程查看或发送信号。>$ kill -l>$其中 1 - 31 是标准信号,34 - 64 是实时信号。我们下面讨论的内容如果没有特殊说明则都是针对标准信号。信号有五种不同的默认行为:终止、终止+core、忽略、停止进程、继续。

2024-10-21 13:27:18 816

原创 (六) 进程控制

(六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制。

2024-10-21 11:26:18 1147

原创 tar 打包使用方法

tar 是一个用于打包和压缩文件的常用命令行工具,特别在 Linux 和 UNIX 系统中。以下是 tar 的基本用法和常见选项的详细介绍。

2024-10-17 16:42:27 378

原创 五、进程环境

Linux 系统一共有 8 种进程终止方式,其中 5 种为正常终止方式:1)从 main() 函数返回;2)调用 exit(3) 函数;3)调用 _exit(2) 或 _Exit(2) 函数;4)最后一个线程从其启动例程返回;5)从最后一个线程调用 pthread_exit(3) 函数。剩下的 3 种为异常终止方式:6)调用 abort(3) 函数;7)接收到一个信号;8)最后一个线程对取消请求作出响应。

2024-10-17 15:37:50 871

原创 四、 系统数据文件和信息

在/etc/passwd 文件中保存了系统中每个用户的用户名、UID 和 GID 等信息。但是这个文件在不同的系统中保存的格式是不一样的,如果一个程序直接用文件流去读取里面的内容,那么这个程序的可移植性就被降低了。老版本的BSD 使用 BDB (BSDDB) 数据库保存用户信息;HPUnix 使用文件系统 hash 方式保存用户信息;

2024-10-17 15:36:15 676

原创 三、文件系统

stat(2) 函数族是专门用来获取文件的亚数据信息的。系统中 stat(1) 命令就是利用这个函数实现的。。一般情况下文件系统的一个 block 的大小为 4KB,而每个 st_blocks 是 512B,所以一个有效文件占用磁盘空间最小的大小为 8 个 st_blocks。它们会根据文件的路径(path)或是已打开的文件的文件描述符(fd)得到该文件的亚数据,并将他们回填到 struct stat 类型的结构体中供调用者使用。

2024-10-17 15:33:48 746

原创 二、文件IO

(实质是一个整形数,文件描述符优先使用可用范围内最小的)

2024-10-17 15:32:10 780

原创 一、标准io操作

io操作是所有一切实现的基础,input and outputfopen() 函数将文件打开,通过这个函数我们可以告诉操作系统我们要操作的是哪个文件,以及用什么样的方式操作这个文件。

2024-10-17 15:23:47 995

原创 nohup使用方法

nohup 使用方法

2024-10-15 11:00:59 818

原创 make install 设置安装路径来改变默认的安装目录

make install 命令安装软件时,您可以通过设置安装路径来改变默认的安装目录

2024-10-15 09:55:20 1398

原创 top 使用技巧

top 使用详细详情

2024-09-24 17:05:27 287

原创 xinetd服务使用方法及案例

xinetd服务使用方法及案例

2024-09-19 11:03:26 1310

原创 secureCRT 工具连接sshd服务报错

secureCRT 工具连接sshd服务报错

2024-09-18 17:45:54 1481

原创 git pull 拉取报错“error: insufficient permission for adding an object to repository database .git/objec”

git pull 拉取报错“error: insufficient permission for adding an object to repository database .git/objec”

2024-09-14 15:29:28 976

原创 FD_SET 和 select 来同时监视多个文件描述符

下面是一个简单的多进程示例,它展示了如何使用 fork 创建子进程,并用 FD_SET 和 select 来同时监视多个文件描述符。

2024-09-11 17:11:04 199

原创 Debian 12 中为 root 用户修改最大打开文件数进程数的限制

Debian 12 中为 root 用户修改最大打开文件数进程数的限制

2024-09-06 14:12:07 985

原创 解决 Linux 上的 SSH 登录缓慢问题

解决 Linux 上的 SSH 登录缓慢问题

2024-08-30 13:20:36 1302

原创 在 LightDM 中配置用户名登录(即手动输入用户名而非显示用户列表)

在 LightDM 中配置用户名登录(即手动输入用户名而非显示用户列表)

2024-08-09 09:45:33 964

原创 在当前的Linux上安装字体

在当前的Linux上并安装字体

2024-07-26 10:13:43 2530

原创 获取 Git 版本号和编译时间并将它们传递给 C++ 代码可以通过 CMake 和预处理宏来实现。

在这里,我们将 GIT_VERSION 和 BUILD_TIME 作为宏传递给 get_git_version_and_build_time 可执行文件。这样,当你运行 get_git_version_and_build_time 可执行文件时,它将会打印出 Git 版本号和编译时间信息,这些信息在编译时动态地获取并嵌入到程序中,非常适合需要版本控制和构建时间追溯的应用场景。) 命令:用于获取当前的系统时间,并将其格式化为 %Y-%m-%d %H:%M:%S 这样的字符串格式。可以根据需要选择其他格式。

2024-07-24 16:38:39 584

原创 Linux-PAM(即linux可插入认证模块)

Linux-PAM(即linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用(重新编写)重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制,这种方式下,就算升级本地认证机制,也不用修改程序。

2024-07-19 10:52:37 2730

原创 编写 RPM SPEC 文件

编写一个离线的 RPM SPEC 文件可以一个基本的离线 SPEC 文件示例,假设你要打包一个名为 hello 的简单命令行工具。离线 SPEC 文件示例 hello.spec。

2024-07-12 14:32:58 376

原创 SSH生成SSH密钥(公钥和私钥)

在设置SSH服务时,生成SSH密钥(公钥和私钥)是一个常见的任务。这些密钥用于安全地进行身份验证,无需输入密码。

2024-06-18 15:38:00 42492 5

原创 在 Linux 中配置 SSH 连接的加密算法

需要对 OpenSSH 服务器和客户端进行相应配置。

2024-06-18 15:31:55 3275

原创 putty 终端设置 stty自适应窗口大小

putty 终端设置 stty自适应窗口大小

2024-06-11 09:58:11 278

docker 详情学习笔记

docker 详情学习笔记

2023-04-06

StreamingMediaBroadcast-master.zip

StreamingMediaBroadcast-master.zip

2022-01-06

setup_CN_2052_11.8.2.9022_Professional_VBA_BONC.exe

企业版wps

2021-12-20

setup_CN_2052_11.8.0.8643_Professional_KVP_PDF_BONC.exe

企业版wps无广告

2021-12-20

系统iso镜像工具.rar

系统镜像制作工具

2021-11-05

sscom串口调试工具

串口调试工具

2021-11-05

mingw-get.rar

win gcc安装

2021-11-04

win清除宏病毒文件。。。。。。

win清除宏病毒文件。。。。。。

2021-09-08

linux c 语言串口调试

用于linux 环境下c语言串口编程编程接收,发送,波特率配置。尤其对于接收串口数据必须采用无符号类型的字符数组去接收 一整行为例说明 整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是有符号类型需要使用一个bit来表示数字的正负,比如16位系统中一个int能存储的数据的范围为–32768 ~ 32767(16位2进制的最高位作为符号位‘1’为负‘0’为正),而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是2的16次方,一共65536)。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。

2020-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除