# Linux学习 **Repository Path**: liuhaodon/linux-learning ## Basic Information - **Project Name**: Linux学习 - **Description**: 这是一个存放linux学习笔记的仓库 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-04-23 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: C语言, Cpp, makefile ## README # Linux学习 ## 介绍 这是一个用于学习Linux系统编程和多线程、进程间通信等概念的项目。它包含了多个示例和测试代码,可以帮助开发者更好地理解和实践Linux环境下的编程技巧。 ## 软件架构 项目主要由以下几个部分组成: - **自定义标准I/O库**:`mystdio.c` 和 `mystdio.h` 实现了一个简单的自定义标准I/O库。 - **阻塞队列与线程**:`BlockingQueue.hpp`, `LockGuard.hpp`, `Main.cc` 等文件演示了如何使用阻塞队列和线程进行生产者-消费者模型的实现。 - **命名管道(FIFO)**:`NamePipe.hpp`, `client.cc`, `server.cc` 展示了如何在Linux中使用FIFO进行进程间通信。 - **读写锁测试**:`mytest.cc` 演示了如何使用读写锁来控制对共享资源的访问。 - **共享内存(Shared Memory)**:`Shm.hpp`, `client.cc`, `server.cc` 展示了如何使用共享内存进行高效的进程间数据交换。 - **线程池(Thread Pool)**:`ThreadPool.hpp`, `Main.cc` 提供了一个线程池的基本实现,用于管理多个工作线程。 - **信号处理**:`testsig.cc` 展示了如何在Linux中捕获并处理信号。 - **进度条模拟**:`process.c` 和 `Main.c` 实现了一个简单的命令行进度条模拟器。 ## 安装教程 1. 克隆仓库到本地: ```bash git clone https://gitee.com/liuhaodon/linux-learning.git ``` 2. 进入项目目录: ```bash cd linux-learning ``` 3. 根据需要编译特定模块,例如编译自定义标准I/O库: ```bash make -C Linux_os_code/10_1_Mystdio_testcode/ ``` ## 使用说明 每个子目录下都有具体的实现代码和Makefile,可以根据需求单独编译和运行。例如: - 编译并运行阻塞队列与线程示例: ```bash make -C Linux_os_code/BlockQueue_thread/ ./Linux_os_code/BlockQueue_thread/Main ``` - 编译并运行FIFO客户端和服务端: ```bash make -C Linux_os_code/Fifo/ ./Linux_os_code/Fifo/server ./Linux_os_code/Fifo/client ``` 更多细节请查看各个子目录下的源码和Makefile。 ## 参与贡献 欢迎提交Pull Request或Issue来改进本项目。如果您有任何建议或者发现了bug,请随时报告。对于较大的更改,请先提交一个Issue来讨论更改的内容。