# Linux系统编程代码合集 **Repository Path**: liu-siyuan888/linux_code ## 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**: 2023-08-03 - **Last Updated**: 2023-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 系统编程代码仓库 ## 介绍 每天总结当日重点,上传重要的代码 ## 2023_08_03 重点一:目录流模型 重点二:目录操作系统调用、目录流库函数的使用,尤其是 readdir 函数 重点三:递归遍历目录 **上传的重点代码** tree.c 递归遍历目录 copyDir.c 递归复制目录 deleteDir.c 递归删除目录 ## 2023_08_04 重点一:使用 man 命令学习库函数和系统调用的用法 重点二:无缓冲 I/O 模型 重点三:系统调用 open, close, read, write, lseek 的熟练使用 **上传的重点代码** copyFile.c 复制文件 readByte.c 先写后读 toupper.c 先读后写 ## 2023_08_05 重点一:文件映射区模型,mmap 函数的使用 重点二:文件描述符模型 **上传的重要代码** changeTxt.c 文件映射读写 ## 2023_08_07 重点一:使用 dup 和 dup2 系统调用实现重定向 重点二:单工管道的 open close read write 重点三:使用 select 系统调用实现 I/O 多路复用 **上传的重点代码** A.c B.c 重定向 + 管道 boy.c girl.c 双人即时通信(管道) boy.c girlKick.c 超时踢人 ## 2023_08_08 重点一:使用 I/O 多路复用同时监听管道的读端和写端 重点二:进程的基础知识 **上传的重点代码** A.c B.c 在管道中传输文件(自定义传输协议) rdwrSelect.c 同时监听管道的读端和写端 ## 2023_08_11 重点一:进程相关命令 重点二:进程并发系统调用 fork execl execv wait waitpid 的熟练使用 重点三:守护进程的实现 **上传的重点代码** wait.c child_1.c child_2.c 进程并发 myDaemon.c 守护进程 ## 2023_08_12 重点一:共享内存, shmget shmat 系统调用的使用 重点二:进程互斥的软件实现 **上传的重点代码** Dekker.c Dekker 算法实现两个进程互斥 ## 2023_08_14 重点一:信号注册系统调用 signal sigaction 的熟练使用 重点二:信号递送数据结构 pending 和 mask 的原理 重点三:两种屏蔽信号的方式,临时屏蔽、全程阻塞 **上传的重点代码** sigaction.c 信号注册 + 临时屏蔽 sigpromask.c 信号注册 + 全程阻塞 ## 2023_08_15 重点一:线程与进程的区别 重点二:线程的内存模型 重点三:线程库函数 pthread_create pthread_join pthread_self 的熟练使用 **上传的重要代码** threads.c 线程的创建与退出 ## 2023_08_17 重点一:熟练写出生产者消费者模型 **上传的重要代码** producer_consumer.c 生产者消费者 ## 2023_08_21 重点一:地址信息结构体的熟练使用 重点二:大小端转换函数 htons ntohs inet_addr inet_ntop inet_pton 的熟练使用 重点三:会用域名转换函数 gethostbyname **上传的重要代码** company_ip.c 域名分析 ## 2023_08_22 重点一:TCP 编程的流程和原理, 用户端和服务端 重点二:TCP 系统调用 socket bind listen connect accept send recv 的熟练使用 重点三:能够使用 UDP 传输数据 **上传的重要代码** tcp_client.c tcp_server.c 客户端与服务端通信(TCP) udp_client.c udp_server.c 客户端与服务端通信(UDP) ## 2023_08_23 重点一:select 和 epoll 的原理和区别 重点二:系统调用 epoll_create epoll_ctl epoll_wait 的熟练使用 **上传的重要代码** groupchat_client.c groupchat_server.c 多人聊天室(TCP)