# linux-c-study **Repository Path**: kevun/linux-c-study ## Basic Information - **Project Name**: linux-c-study - **Description**: 本仓库用于存放 Linux C 开发相关的学习笔记、示例代码、实操案例,适合 Linux C 入门及进阶学习者参考使用。内容从基础入门到深入探究,循序渐进,涵盖 Linux 环境下 C 语言开发的核心知识点,助力快速掌握 Linux C 开发技巧,积累实操经验。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 0 - **Created**: 2026-04-21 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux C 本仓库是我系统学习 Linux 下 C 语言编程的记录,涵盖了从基础文件操作到多线程并发处理的核心知识体系。 ## **学习大纲与要点:** ### (0)Linux环境搭建 让你快速简介的获得一个linux的开发环境 ### (1)导读 介绍 Linux 系统编程的基本概念 ### (2)文件 I/O 基础 学习 Linux 下“一切皆文件”的核心思想。重点掌握文件描述符(File Descriptor)的概念,以及 `open()`, `read()`, `write()`, `close()`, `lseek()` 等基础系统调用。 ### (3)深入探究文件 I/O 深入分析内核中的文件数据结构、原子操作、文件共享机制以及 `fcntl()` 和 `ioctl()` 对文件状态标志的控制。 ### (4)标准 I/O 库 研究 C 标准库提供的 `stdio` 函数(如 `fopen`, `fread`, `fwrite`)。重点理解**用户级缓冲区**机制及其与系统调用 I/O 的性能差异。 ### (5)文件属性与目录 学习如何获取和修改文件的元数据。包括 `stat` 结构体解析、文件权限管理、硬链接与符号链接的区别,以及目录的读取与遍历。 ### (6)字符串处理 总结在系统编程中高效处理字符串的技巧,包括动态内存管理、常用字符串函数及其安全版本,为后续协议解析打基础。 ### (7)系统信息与系统资源 了解如何获取系统内核信息(如主机名、内核版本)以及进程资源限制(`getrlimit` / `setrlimit`),学习时间处理相关的系统 API。 ### (8)信号:基础 探讨 Linux 下的异步通知机制。学习信号的生命周期、信号处理函数的注册(`signal`, `sigaction`)以及信号屏蔽集的操作。 ### (9)进程间通信简介 初步了解进程间交换数据的方式。包括传统的管道(Pipe)、有名管道(FIFO),以及 System V 和 POSIX 标准下的消息队列、信号量和共享内存。 ### (10)线程 进入多任务并行领域。学习 POSIX 线程(Pthreads)的创建、终止、回收(`pthread_join`)以及分离状态(`detach`)的管理。 ### (11)线程同步 解决多线程环境下的竞态条件问题。深入实践互斥锁(Mutex)、条件变量(Condition Variable)、读写锁以及信号量等同步原语。 ### (12)高级 I/O 探索高性能服务器开发的核心。涵盖非阻塞 I/O、I/O 多路复用机制(`select`, `poll`, `epoll`)以及存储映射 I/O(`mmap`)。