自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

这是一个c++热爱者的博客哟

这是一个c++热爱者的博客哟

  • 博客(341)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++11 并发指南九(综合运用 C++11 多线程下生产者消费者模型详解)

前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——,并给出完整的解决方案。

2023-01-29 13:07:15 4222

原创 C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。

2023-01-29 13:04:50 4499 1

原创 C++多线程07:thread_local

thread-local storage 和static(或者说global) 存储很类似,每一个线程都将拥有一份这个数据的拷贝,对象的生命周期从线程开始时开始(对于全局变量),或者首先分配空间。当线程退出的时候对象析构;一般在声明时赋值,在本thread中只执行一次。当用于类成员变量时,必须是static的。C++11 thread_local用法 - 知乎 (zhihu.com)存储类说明符 - cppreference.com。

2023-01-20 15:47:40 3091

原创 FontConfig 关于字体属性

【代码】FontConfig关于字体属性。

2025-01-17 20:38:24 173

原创 16.扩展属性

扩展属性(EA)可以用于实现访问控制列表(ACLs)、文件能力等功能。此外,它们还可以记录文件的版本号、MIME类型、字符集信息或指向图标资源的指针等。命名空间:EA被划分为不同的命名空间,包括usertrustedsystem和security。每个命名空间有不同的用途和权限要求。user:非特权用户可以在权限允许的情况下读取和修改这些属性。trusted:需要特权进程才能修改。system:主要用于内核级别的操作,例如ACLs。security。

2025-01-13 01:35:17 291

原创 15.文件属性

和 futimens()提供了更高精度和更灵活的方式来设置文件的时间戳。这些函数允许独立设置访问时间和修改时间,并且支持纳秒级精度。可以使用特殊值UTIME_NOW和UTIME_OMIT来简化时间戳的设置操作。支持符号链接的直接操作,而futimens()则适用于通过文件描述符打开的文件。通过这些高级接口,开发者能够更精细地控制文件的时间戳,满足各种应用需求。新建文件的UID总是取自进程的有效用户ID。新建文件的GID取决于文件系统的挂载选项和父目录的设置。使用chown()

2025-01-13 01:33:10 260

原创 14.系统编程概念

定义:文件系统是对文件和目录的组织集合。内容:本章将解释与文件系统相关的概念,并以传统的Linux ext2文件系统为例进行说明。同时,会简要介绍Linux支持的日志文件系统。系统调用:讨论用于挂载(mount)和卸载(unmount)文件系统的系统调用,以及获取已挂载文件系统信息的库函数。本章介绍了文件系统和设备专用文件的基本概念,重点讨论了设备文件的类型、设备驱动程序的作用以及Linux中设备管理的演进。通过udev和sysfs。

2025-01-13 01:16:05 509

原创 13. 文件IO缓冲

stdio库通过缓冲机制减少了系统调用次数,提高了 I/O 性能。使用setvbuf()可以设置流的缓冲模式(无缓冲、行缓冲、全缓冲)。fflush()用于强制刷新输出流的缓冲区。在编写可移植代码时,应注意不同 C 库的行为差异,并显式调用fflush()以确保正确性。fsync()和:用于强制刷新文件数据和元数据到磁盘。O_SYNC标志:使所有写操作同步执行,但会显著降低性能。O_DSYNC和O_RSYNC标志:提供了更细粒度的同步控制。性能优化使用大缓冲区减少系统调用次数。

2025-01-13 01:03:27 884

原创 12.Linux 进程信息

proc文件系统提供了一种简单的方式来访问内核和进程的信息。每个进程在/proc中都有一个以 PID 命名的目录,包含进程的详细信息(如statuscmdlinefd等)。线程组中的每个线程在目录下都有一个以 TID 命名的子目录。/proc文件系统的内容会随着内核版本的演进而变化,因此解析时应谨慎处理。/proc文件系统提供了对内核和系统信息的访问。可以通过 Shell 命令或编程语言(如 C、Python)读取和修改/proc文件。/proc/PID。

2025-01-13 00:53:25 617

原创 11 Linux 系统限制和选项

编译时:通过包含标准头文件(如)获取固定的限制值。运行时:通过调用SUSv3定义的函数(如sysconf()pathconf()和)获取可能变化的限制和选项。SUSv3为开发者提供了一套标准化的接口和规定,帮助处理不同系统之间的差异,从而确保应用程序在不同UNIX实现上的可移植性和正确性。SUSv3通过定义最小限制值和提供标准化接口(如sysconf()pathconf()和),帮助开发者编写可移植的应用程序。

2025-01-13 00:46:10 1036

原创 10.Linux 时间

这段文字主要讨论了计算机程序中涉及的两种时间类型:真实时间和进程时间,并详细介绍了日历时间的概念及其在UNIX系统中的表示方式。真实时间:进程时间:进程使用的CPU时间总量,用于性能检查和优化。硬件时钟:计算机体系结构内置的时钟,帮助内核计算真实时间和进程时间。日历时间的表示:总结:程序关注真实时间和进程时间,UNIX系统使用Epoch以来的秒数表示日历时间,32位系统存在2038年问题,64位系统可以解决这一问题。用于获取日历时间,精度可达微秒。函数原型:返回值:成功返回0,失败返回-1。参数:

2025-01-13 00:45:25 775

原创 9.LINUX 进程凭证

实际用户 ID 和实际组 ID:RUID 和 RGID 确定了进程的真实身份,用于审计和日志记录。它们在进程创建时从父进程继承,并且通常不会更改。有效用户 ID 和有效组 ID:EUID 和 EGID 是用于权限检查的主要标识符。它们决定了进程在执行各种操作时的权限。EUID 和 EGID 可以通过 SUID 和 SGID 程序或系统调用动态更改。保存的 set-user-ID 和保存的 set-group-ID。

2025-01-06 00:15:23 537

原创 8. LINUX 用户和组

存储用户账户的基本信息,包括登录名、用户 ID、组 ID、主目录和登录 Shell 等。Shadow 密码机制:为了提高安全性,加密后的密码通常存储在文件中,而不是直接存储在中。网络环境:在分布式系统中,密码信息可以通过 NIS 或 LDAP 进行分发,保持对应用程序的透明性。通过理解文件的结构和功能,系统管理员可以更好地管理和维护用户账户,确保系统的安全性和稳定性。:存储用户的加密密码和其他与安全性相关的字段,只有超级用户可以读取。它提高了系统的安全性,防止密码被轻易破解。

2025-01-05 23:50:50 822

原创 Linux 基础七 内存

malloc()和free()是 C 语言中常用的动态内存分配和释放函数,提供了比brk()和sbrk()更高级、更灵活的接口。malloc()分配的内存块会被对齐,以便高效访问各种数据结构。free()通常不会立即减少,而是将释放的内存块添加到空闲列表中,供后续的malloc()调用重用。只有当释放的内存块位于堆的顶部且足够大时,free()才会调用sbrk()来降低。通过合理的内存管理和释放策略,malloc()和free()可以有效地减少内存碎片,提高内存利用率。malloc()和。

2025-01-05 23:38:37 820

原创 Linux 基础 6.进程

clearenv():清除整个环境变量列表,将environ设置为NULL。putenv():添加或修改环境变量。它接受一个name=value形式的字符串,并将其直接添加到环境中。注意,putenv()不会复制字符串,因此不应使用自动变量作为参数。setenv():添加或修改环境变量。它为name=value形式的字符串分配新的内存,并将name和value复制到该内存中。可以安全地使用自动变量作为参数。unsetenv():移除指定的环境变量。如果该变量不存在,unsetenv()也不会报错。

2025-01-05 20:32:33 1058

原创 5.深入文件IO

i-node 是 Linux/UNIX 文件系统的核心组成部分,它通过分离文件内容和元数据、支持硬链接、提供高效的文件查找和访问机制、记录文件的访问权限和时间戳、支持文件锁定和并发控制、实现稀疏文件、支持大文件和高效的磁盘空间管理等方式,极大地提升了文件系统的灵活性、效率和可靠性。i-node 的存在使得文件系统能够更好地管理文件资源,满足现代操作系统的需求。可以在编译时通过命令行选项定义64// 其他头文件。

2025-01-05 20:31:38 618

原创 Linux 基础 4.文件IO 通用的IO模型

在 Linux 和其他类 Unix 操作系统中,文件描述符(file descriptor)是操作系统内核用来标识打开文件的非负整数。它们用于表示所有类型的已打开文件,包括普通文件、管道(pipe)、FIFO、套接字(socket)、终端和设备等。每个进程都有自己独立的一组文件描述符,这意味着不同进程之间的文件描述符不会相互影响。UNIX I/O模型的通用性极大地简化了应用程序的开发,使得开发者无需关心底层的具体细节,只需专注于业务逻辑。同时,当需要访问特定设备或文件系统的高级功能时,ioctl()

2025-01-05 20:29:25 1252

原创 11.python文件

Python 提供了强大的文件输入输出(I/O)功能,使得你可以轻松地读取、写入和管理文件。以下是关于Python文件I/O的详细总结,涵盖了基本操作、高级特性以及与操作系统交互的方法。Python的文件I/O功能非常强大且灵活,能够满足各种文件处理需求。通过掌握open()read()write()seek()tell()等基本方法,以及os和shutil模块提供的高级功能,你可以轻松地进行文件的读取、写入、重命名、删除和目录管理等操作。使用with语句可以确保文件的安全关闭,避免资源泄漏问题。

2024-12-16 00:05:43 1350

原创 10.python函数

在Python中,使用def关键字来定义一个函数。函数可以接受参数(也称为形参),并且可以选择性地返回一个值。"""文档字符串 - 函数的简短描述"""# 函数体return [expression] # 可选: 函数的名字。parameters: 参数列表,可以为空。return: 返回语句,用于返回一个值给调用者。如果没有return语句或仅使用return,则函数默认返回None。Python函数提供了强大的功能,使得代码更加模块化和可重用。

2024-12-16 00:04:25 655

原创 9.Python 条件语句和循环语句

通过上述详细的解释,我们介绍了 Python 中的条件语句和循环语句,包括ifelifelsewhilefor、循环嵌套以及breakcontinue和pass控制语句。这些控制结构是编写复杂逻辑和重复操作的基础,掌握它们可以帮助你编写更加灵活和高效的 Python 代码。如果你有任何具体问题或需要进一步的解释,请随时告诉我!

2024-12-16 00:03:02 604

原创 8.python字典

字典是 Python 中一种非常灵活且强大的数据结构,它允许你存储键值对(key-value pairs),并且可以快速地根据键查找对应的值。字典是可变的(mutable),意味着你可以在创建后修改、添加或删除其中的键值对。通过上述详细的解释,我们全面介绍了 Python 字典的基本概念、访问方式、修改操作、内置函数和方法、高级用法以及性能优化技巧。字典是 Python 中非常强大且灵活的数据结构,掌握这些知识可以帮助你在编写代码时更加高效地处理和操作数据。

2024-12-16 00:02:31 917

原创 7.python元组

元组是 Python 中的一种不可变序列类型,与列表类似,但元组中的元素一旦创建后就不能被修改。元组使用小括号()来表示,而列表使用方括号[]。元组的不可变性使其在某些场景下比列表更安全和高效。通过上述详细的解释,我们全面介绍了 Python 元组的基本概念、访问方式、不可变性、内置函数和方法、高级用法以及性能优势。元组是 Python 中非常重要的数据结构,尤其适合用于存储固定的数据集合或作为字典的键。掌握这些知识可以帮助你在编写代码时更加高效地处理和操作数据。

2024-12-16 00:01:53 980

原创 6.python列表

Python 列表 (List) 深度总结1. 列表的基本概念2. 访问列表中的元素3. 修改列表4. 删除列表元素5. 列表的操作符6. 列表的内置函数7. 列表的方法8. 列表的高级用法8.1 列表推导式 (List Comprehensions)8.2 列表的浅拷贝与深拷贝8.3 列表的性能优化9. 列表的多线程和并发处理10. 列表的国际化和本地化总结列表是 Python 中最常用的数据结构之一,它是一个有序的、可变的集合,允许存储不同类型的元素。列表使用方括号[]

2024-12-16 00:01:19 1208

原创 5.字符串

字符串是 Python 中最常用的数据类型之一,用于表示和操作文本数据。Python 提供了丰富的字符串创建、访问、操作和格式化功能,使得处理文本变得非常方便。以下是关于 Python 字符串的详细总结,涵盖了字符串的创建、访问、操作、格式化以及常用方法。通过上述详细的解释,我们全面介绍了 Python 字符串的创建、访问、操作、格式化、Unicode 支持、常用方法以及三引号字符串等内容。这些知识不仅涵盖了字符串的基本用法,还包括了许多高级功能,帮助你在编程中更高效地处理文本数据。

2024-12-16 00:00:35 862

原创 4.Python 数字类型

Python 数字类型总结1. 数字类型概述特点2. 数字类型的创建与赋值3. 数字类型转换4. 数学运算与函数`math` 模块`cmath` 模块5. 随机数生成6. 三角函数7. 数学常量总结Python 提供了多种数字类型来存储和操作数值数据。这些类型包括整数、浮点数、长整数(在 Python 3 中已与整数合并)和复数。每种类型都有其特定的特性和使用场景。以下是关于 Python 数字类型的详细总结,包括它们的特点、转换方法以及常用的数学和随机数函数。整型 (int。

2024-12-16 00:00:01 674

原创 3.python运算符

Python 提供了多种运算符,用于执行算术、比较、逻辑等各种操作。

2024-12-15 23:59:12 947

原创 2.python变量

通过上述详细的解释,我们不仅涵盖了 Python 中的基本变量类型和数据结构,还深入探讨了它们的特性和操作方法。此外,我们还介绍了进阶概念,如不可变与可变类型、内存管理、垃圾回收和类型提示。这些知识将帮助你更好地理解和使用 Python 编程语言,编写高效、可靠的代码。如果你有任何具体问题或需要进一步的解释,请随时告诉我!

2024-12-15 23:58:31 1060

原创 0.基础语法

Python 基础语法涵盖了从安装和运行 Python 程序到理解语言核心概念的各个方面。以下是基于你提供的信息的一个总结,并附有例子帮助你更好地理解。以上就是对 Python 基础语法的一些关键点的总结。希望这些信息对你学习 Python 有所帮助。如果你有任何具体问题或需要进一步的例子,请随时提问!

2024-12-15 23:57:56 945

原创 1.输入输出

Python 的输入输出功能非常强大且易于使用。通过input()和print()函数,你可以轻松地与用户进行交互;通过open()函数,你可以方便地进行文件读写操作。格式化输出则让你能够更灵活地控制输出的内容和格式。

2024-12-15 23:57:12 551

原创 现代C++ 21 any

是 C++17 引入的一个类,用于表示一个类型安全的容器,可以存储任何可复制构造类型的单个值。它提供了一种灵活的方式来处理不同类型的对象,而不需要提前知道具体的类型。是 C++17 引入的一个非常灵活的工具,特别适用于需要存储和处理不同类型值的场景。的设计目标是提供一种通用的、类型安全的方式来进行值的存储和访问。如果你有更多具体的问题或需要进一步的帮助,请随时提问!

2024-12-09 00:44:05 565

原创 现代C++20 variant

是 C++17 引入的一个非常有用的工具,特别适用于需要在多个不同类型之间切换的场景。它提供了类型安全的联合体功能,并且通过。提供了更强的类型安全性和更丰富的功能。它可以在任何给定时间包含多个备用类型之一的值,并且可以处理这些类型的转换和访问。在任何给定时间点要么包含其备用类型之一的值,要么在错误的情况下不包含任何值(这种情况很少见,通常发生在异常抛出时)。是 C++17 引入的一个类模板,用于表示类型安全的联合体(union)。如果你有更多具体的问题或需要进一步的帮助,请随时提问!中的值变得非常方便。

2024-12-09 00:41:09 992

原创 现代C++ 19 expected

是 C++23 引入的一个非常强大的工具,特别适用于处理可能失败的操作。它提供了一种清晰且安全的方式来表示成功值和错误值,并且通过丰富的单子操作(如。总是包含一个值,无论是成功值还是错误值。这使得它在处理函数返回值时更加灵活和强大,尤其是在需要区分成功和失败的情况下。它提供了一种更安全、更清晰的方式来处理可能失败的操作,相比于传统的返回值加错误码的方式,是 C++23 引入的一个类模板,用于表示两种可能的值之一:一个预期的成功值(类型为。这使得它非常适合用于函数返回值,尤其是那些可能会失败的操作。

2024-12-09 00:40:17 1038

原创 现代C++ 18 optional

是 C++17 引入的一个类模板,用于管理一个可能包含值也可能不包含值的对象。它提供了一种更安全、更清晰的方式来处理可能失败的操作或可选的返回值,相比使用指针(如。是 C++ 标准库中一个非常有用的功能,特别适用于处理可能失败的操作或可选的返回值。它提供了清晰的语法和丰富的功能,使得代码更加安全和易读。对象在任何给定时间点要么包含一个值,要么不包含值。,你可以避免使用指针或布尔标志来表示是否存在值,从而减少了潜在的错误和复杂性。如果你有更多具体的问题或需要进一步的帮助,请随时提问!更加直观和易于理解。

2024-12-09 00:38:34 797

原创 现代C++17 tuple

是 C++ 标准库中一个非常强大的工具,特别适用于需要将多个不同类型的数据组合在一起的情况。的“形状”——它的尺寸、元素类型和这些类型的排序——是其类型签名的组成部分,因此它们必须在编译时都可用,并且只能依赖于其他编译时信息。进行许多条件操作——尤其是条件前缀/后缀和过滤——只有在条件可以在编译时进行评估的情况下才有可能。是 C++ 标准库中的一个类模板,用于表示固定大小的异构值集合。中的元素解包到单独的对象中,或者创建一个由引用组成的。的泛化版本,允许存储任意数量的不同类型的元素。的析构函数是平凡的。

2024-12-09 00:37:32 1054

原创 现代C++16 pair

你还可以通过提供自定义的比较函数来控制std::set中std::pair的排序方式。例如,如果你想只根据pair的second// 自定义比较函数,只比较 second 元素// 创建一个 std::set,使用自定义比较函数// 插入一些 pair// 遍历 set 并输出元素return 0;

2024-12-09 00:36:05 1126

原创 现代C++ 15 整数比较

这些函数定义在头文件。

2024-12-09 00:34:53 555

原创 现代C++14 交换

是 C++ 标准库中的一个通用函数,用于交换两个对象的值。它最初定义在头文件 中,但从 C++11 开始,它的主要定义被移动到了头文件 中,而数组的特化版本仍然可以在 中找到。此外,某些特定类型的 特化可能在其他头文件中定义,例如 。 的基本形式如下:这个模板函数接受两个引用参数 和 ,并交换它们的值。 的行为是通过调用 类型的移动构造函数和移动赋值运算符来实现的,因此要求 必须满足 和 。 规范:从 C++11 开始, 可以被标记为 ,具体取决于 的移动构造和移动赋值操作是否是 的。

2024-12-09 00:33:11 1312

原创 现代 C++13 hash

你可以定义一个独立的哈希函数对象,并将其作为无序容器的第二个模板参数传递。

2024-12-09 00:31:58 896

原创 现代C++12 函数对象

在 C++ 中,函数对象(也称为仿函数或functor)是指实现了函数调用运算符operator()的对象。这意味着你可以像调用普通函数一样调用这些对象。C++ 标准库提供了多种内置的函数对象,并且用户也可以定义自己的函数对象。更高的灵活性:可以将函数对象作为参数传递给其他函数或算法。状态保持:与普通函数不同,函数对象可以拥有内部状态,允许它们在多次调用之间保持信息。更好的性能:编译器可以对函数对象进行内联优化,而普通函数指针通常无法享受这种优化。

2024-12-09 00:29:41 1350

原创 现代C++ 12 内存管理库,智能指针

可以用于管理任何类型的自定义资源,例如操作系统句柄、文件描述符等。// 自定义删除器,用于关闭文件描述符close(fd);// 使用 std::unique_ptr 管理文件描述符// 打开文件并创建 unique_ptrreturn 1;// 写入文件\n";// 文件描述符会在离开作用域时自动关闭return 0;这些示例展示了在各种场景下的应用,包括文件资源、线程资源、数据库连接、动态数组、多态对象链表、共享内存、自定义资源(如句柄)以及网络套接字。通过使用。

2024-12-09 00:28:20 861

vcpkg 文档 vcpkg是一款免费的C/C++包管理器,用于获取和管理库 从1500多个开源库中进行选择,只需一步即可下载和

vcpkg是一款免费的C/C++包管理器,用于获取和管理库。从1500多个开源库中进行选择,只需一步即可下载和构建,或者添加您自己的私有库以简化构建过程。 由Microsoft C+团队和开源贡献者维护。 为什么选择vcpkg? ·有超过2200个开 便于使用普遍的只需一步即可下载并构建常用库。无需担心上游依赖项或版本冲突。使用vcpkg可与您首选的操作系统、构建系统、目标架构、IDE、编辑器和特命令行操作或在可与您的存储库共存的清单中声明依赖项。获得开发团续集成流程配合使用。库是从源代码构建的,并且可以进行配置。 队、文档和活跃社区的支持。可靠的为了所有人保持本地开发人员和C工/CD工作流程之间的一致性。保留您首选的库版无论您是小型开源项目的单人团队,还是具有复杂构建和安全需求的大型本。将您的依赖生态系统与团队的其他成员同步。 企业,都可以利用最新的vcpkg功能来满足您的工作流程。缓存二进制文件以加快使用速度,避免钻石依赖解析问题,为所有开发人员、C工机器和容器重现相同的构建。自带库或使用流行的公共库。利用现有的Visual Studio和Visual Studio Code集成。

2024-07-20

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最先进的平台,用于构建和维护高度安全的解决方案。既然SELinux已经包含在Linux 2.6内核中,并且默认情况下在Fedora Core、Red Hat Enterprise Linux和其他主要发行版中提供,那么利用它的好处比以往任何时候都要容易。 SELinux by Example是在生产环境中使用SELinux的第一个完整的实践指南。由三位领先的SELinux研究人员和开发人员撰写,它阐明了使用SELinux的各个方面,从其架构和安全对象模型到其策略语言。这本书彻底解释了SELinux示例策略-包括强大的新参考策略-展示了如何快速地使它们适应您独特的环境。它还包含一个全面的SELinux策略语言参考,并涵盖了Fedora Core 5和即将推出的Red Hat Enterprise Linux版本5中令人兴奋的新功能。 ·彻底理解SELinux的访问控制和安全机制·使用SELinux从头开始构建安全系统·获得对内核资源的细粒度控制·为类型强制、角

2024-01-16

SELinux by Example

1.内核策略语言部分旨在作为内核策略语言语句和规则的参考,并附有来自参考策略源的支持示例。此外,政策 DB 第 32 版的所有语言更新都应包含在内。如需更详细的策略语言解释,推荐阅读《SELinux by Example》一书。 《SELinux by Example》是一本专为理解和实践Security-Enhanced Linux(SELinux)安全模型而编写的指南性书籍。SELinux是Linux内核中的一个强制访问控制(MAC)系统,用于增强操作系统的安全性。 这本书通常会深入浅出地介绍SELinux的基本概念、架构以及如何配置和管理SELinux策略。书中通过实例和实际应用场景来帮助读者掌握SELinux的工作原理,内容可能包括: 1. **SELinux基础知识**:介绍SELinux的历史背景、目标、基本术语及工作模式(如`enforcing`、`permissive`和`disabled`)。 2. **策略构建与管理**:详细阐述如何创建、安装、更新和调试SELinux策略模块,使用工具如`semodule`、`checkpolicy`、`audit2all

2024-01-16

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SE

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链以及策略本身。 SELinux Notebook 是免费提供的,欢迎并鼓励社区做出贡献! 为 SELinux Notebook 做出贡献 直接在 GitHub 上查看笔记本 SELinux Notebook 有多种不同的格式,包括可以直接在 GitHub 上查看的在线格式,一次查看一个部分,从以下链接开始: SELinux 笔记本 离线查看笔记本 虽然 SELinux Notebook 是一本不断更新的活书,但我们偶尔也会发布具有各种格式的预构建版本的新版本,这些版本可以下载和离线阅读。我们的发布页面包含有关每个版本以及预构建笔记本的更多信息: https://github.com/SELinuxProject/selinux-notebook/releases 构建您自己的 SELinux 笔记本 BUILD.md

2024-01-15

第四章套接字通信博客的有图案的版本

博客上传本地图片太麻烦了,直接整了个pdf,大家结合博客一起看吧

2023-11-01

python Django web 联通用户管理系统实训代码

类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化ORM系统、Form系统、Cache系统、Routing、Middleware、Template系统等,这样就能够很方便的使用这些功能,不需要自己来实现这些底层的功能。 2. 自动化Admin管理站点:Django自带一个基于Web的Admin管理站点,无需自行开发,可快速完成对模型的管理。 3. 强调面向对象编程思想:Django强调对模型、视图、控制器的封装,让开发人员更关注业务开发本身而不是技术层面,使代码结构更清晰。 4. 安全性较高:Django带有一些内置安全性功能,如防止跨站脚本攻击、C

2023-06-16

python Django web 实训项目的实验报告

python Django web 实训项目的实验报告 类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。 静态文件存放在 pms/app1/static Html文件存放在 pms/app1/template 验证码模块 md5加密模块 分页模块 bootstrap模块 form 模块在 pms/app1/utils Models 文件存放在 pms/app1/ Form上传的图片文件 存放在 pms/app1/city ModelForm 上传的图片 存放在 pms/app1/media Xxx.py 文件存放在 pms/app1/views Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化OR

2023-06-16

《C++17 完全指南》

本书为《C++17 the complete guide》(第一版) by Nicolai M. Josuttis的个人中文翻译版, 仅供学习和交流使用 C++17是现代 C++编程中的下一个版本,最新版本的gcc、clang和 Visual C++ 都至少已经部分支持它。尽管 迁移到 C++17 并不像迁移到 C++11一样是一个巨大的变化,但 C++17也包含了非常多很小但却很有价值的语言 和库特性。它们再一次改变了我们使用 C++编程的方式,无论是对应用程序员还是提供基础库的程序员来说都 是如此。

2023-01-21

MSVC C++ STL 源码解析系列.md

MSVC C++ STL 源码解析系列.md

2023-01-10

C# Asp MVC 五层 .net 学生管理系统main.tar

这套源码 适合毕业设计和课程设计,因为有足够的注释 ,所以理解简单。采用五层架构 ,符合高内聚,低耦合的设计规范。课程设计书里有 软件测试。 一.导入数据库 数据库文件一般在Data、DB或者App_Data文件夹内 有两种方法导入数据库,任选其一即可: 1.用sqlserver打开XXX.sql脚本,然后执行脚本,即可自动创建数据库。 2 用sqlserver附件mdf文件(此方法有版本限制,某些低版本sqlserver可能出现无法附件的情况)(推荐此方法) 二.运行项目 1.修改链接字符串 链接字符串在web.config文件内,一般使用默认配置即可无需修改, 修改也很简单,将你的数据库服务器名复制进来,替换掉链接字符串里的服务器名即可(就是这个点号)。操作请看图:。 2 用VS打开解决方案文件(即.sln文件),如果没有解决方案文件,就用VS打开网站,运行即可。如果运行起来后,没有自动显示页面,则需设置默认启动项,右键某个你想设置的.aspx文件,在弹出的界面中点击“设为启动项”即可,然后重新点击运行。

2022-09-13

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"== “重载.pdf 构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf @静态数据成员(1).pdf 静态数据成员.pdf 拷贝构造函数.pdf 类的继承.pdf 类的组合.pdf 模板.pdf 模板的特化(具体化) .pdf 前置加加重载(1).pdf 前置加加重载pdf 國浅拷贝与深拷贝.pdf 输入输出函数重载(1).pdf 输入输出函数重载pdf 画委托构造函数.pdf 析构函数.pdf 虛表.pdf 网虛函数和多态.pdf 网虚析构函数.pdf 网友元函数(1).pdf 國友元函数.pdf 运算符重载(1).pdf 运算符重载pdf 指针函数和函数指针.pdf 网重载赋值号的问题?为什么不能自赋值1...

2022-07-21

this指针的笔记呀呀呀呀

this指针的笔记呀呀呀呀

2022-07-21

git reset 的三个参数.pdf

1.--soft: 仅仅移动本地库 原先是统一战线的,git reset --soft 版本号 如果是后退了,相当于 工作区、暂存区 前进了 如果是前进了,相当于 工作区、暂存区 后退了 这个时候 git status 会根... 2.--mixed:本地库和暂存区否会变 git reset --mixed 版本号 如果是前进 相当于工作区自己后退了 如果是后退,相当于工作区前进了 此时git status,也会相应的发生变化,比如 变红色、变绿色等

2022-06-13

C#实现的学生管理系统,期末实训报告

含有sql脚本,和期末实训报告。目 录 第一章 学生信息管理系统概述 1.1 系统的主要功能 1.2 设计方法概述 1.3 学生信息管理系统的现状分析 1.3.1 学生信息管理系统应用的现状 1.3.2 管理系统开发的目的 第二章 系统开发平台 2.1 数据库系统的选择 2.2 系统开发工具的选择 第三章 系统框架设计 3.1 系统开发梗概 3.2 系统开发的步骤 3.3 系统的逻辑体系结构 第四章 系统概要和数据库设计 4.1 系统功能模块图 4.2 功能的说明 5.1 数据库及表的设计 5.2 数据库中的数据库关系图 5.3 数据库中存储过程的设计 5.3.1 存储过程的含义 5.3.2 存储过程的应用 第五章 系统详细设计及实现 5.4 系统模块设计 5.4.1 主窗口的设计 5.4.2 查询 5.4.3 密码修改 5.4.4选修课选课 第六章 开发系统遇到的问题和获得的经验 6.1 系统开发过程中遇到的问题 6.1.1 数据库连接 6.1.2 数据库中的表设计 6.1.3用户权限问题 6.2 从系统开发中获得

2022-05-15

QT学生管理系统的数据库文件(SQLLite)

和学生管理系统配套使用

2022-04-28

qt学生信息管理系统(含有数据库源码)

qt学生信息管理系统(含有数据库源码)

2022-04-28

makefile 文件编写

makefile 文件编写

2022-04-05

mysql 基础 进阶 运维

我自己做了个学习笔记,放在网上,大家也可以参考参考,不算特别详细但是老师讲到的知识点都记录下来了,欢迎大家观看

2022-03-20

Linux教程.zip

Linux教程.zip

2022-03-20

群主-SQL.pdf

群主-SQL.pdf

2022-03-14

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

TA关注的人

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