《Linux程序设计》主讲:丁宋涛
C/C++属于系统级别的编程语言,作为开源软件的代表作品Linux操作系统是C/C++程序员应当熟悉和学习的。本门课程从实战出发,降低了初级C/C++程序员进入Linux程序设计的门槛。本门课程以Centos为实验环境,从核心命令讲解,再到gcc/gdb开发环境,直至覆盖到460多个常用的类Unix/POSIX API。本课可以有效的节约初学者上手Linxu操作系统的时间。同时,课程结合GNU的开源代码,仿真实现Linux常用命令,展现类Unix系统调用的工程级别的实现思路,重点讲解Linux环境下的开发和接口函数,多线程并发,并最终实现了一个带有CGI功能的小型http服务器。本课程结合计算机程序运行原理等内容,增加学员实际编程代码量,提升实战能力。
本次课程的主体在多所全日制本科院校进行了讲授,并服务了若干家科研院所的Linux初级培训课程。课程全部案例全程手工编写调试,并结合作者多年的工程开发经验进行讲解,适合高年级本科生、应届生以及1年左右Linux开发经验的人员参考学习。
课程收益
1 Linux使用及开发入门
2 熟悉Linux系统编程的核心系统调用
3 熟悉linux系统编程的基本调试技巧
4 介绍Linux系统编程常见的bug解决思路
1-1 课程介绍.mp4
1-2 Linux程序设计概要介绍.mp4
1-3 从POST到Init,Linux的引导过程:在BIOS之后,.mp4
1-4 Linux命令行常用快捷键:加速你与Linux的交互速度.mp4
1-5 cd:切换目录命令常用技巧.mp4
1-6 mkdir:递归建立目录与批量克隆目录结构的技巧.mp4
1-7 touch:mtime,ctime和atime.mp4
1-8 ls:过滤文件与目录和查找–更新但不知文件名的技巧.mp4
1-9 find:按时间查找.mp4
1-10 find-name和-type:按名称、按类型和查找结果取反.mp4
1-11 find-maxdepth:控制检索目录的深度.mp4
1-12 find-newer:查找比某个文件后创建的文件.mp4
1-13 find与exec:在目录中删除所有的文件但保留指定的文件.mp4
1-14 xargs:提取命令行参数.mp4
1-15 chmod与umask:文件目录权限.mp4
1-16 cat -dev-null:创建文件、显示文件以及清空文件内.mp4
1-17 cut:截取文件内容.mp4
1-18 vi使用(上):介绍.mp4
1-19 vi使用(下):实战操作.mp4
1-20 grep命令:过滤文本信息.mp4
1-21 ps:查看进程命令.mp4
1-22 netstat:查看网络.mp4
1-23 gcc:-I解决目录进入,-w压抑警告和O2性能提升演示.mp4
1-24 gdb:调试工具介绍.mp4
2-1 Linux系统编程学什么:内核的存在性是理解系统编程的重要前.mp4
2-2 从more开始学写Linux命令:main函数argc,ar.mp4
2-3 VT100的模拟、应用程序与标准输入直接交换数据.mp4
2-4 Linux编程中man的重要地位与段错误排查.mp4
2-5 gtime函数、timeval、time_t信息的由来.mp4
2-6 用户与命令交互设计技巧.mp4
2-7 ls命令模拟实现(上):使用readir获取目录信息.mp4
2-8 ls命令模拟实现(中):time_t结构体与unix时间戳.mp4
2-9 ls命令模拟实现(下):pwd.h头文件引发的惨案.mp4
3-1 fgets与gets中行I-O的溢出风险:文件描述字、流式编.mp4
3-2 fgetc,fputc抛弃换行符后提取单字符命令示例.mp4
3-3 fseek与文件写入定位:a+与w+写入数据的定位比较.mp4
3-4 fflush引发的缓存问题-全缓存-行缓存-无缓存细节详解.mp4
3-5 fread、fwrite共享文件偏移.mp4
3-6 fwrite API:参数size与nmemb的对应.mp4
3-7 ulimit系统–文件个数与lsof侦测文件资源泄漏.mp4
3-8 open-create 创建文件中的umask与文件权限问题.mp4
3-9 轮询模式:read、O_NONBLOCK阻塞读问题与非阻塞.mp4
3-10 O_TRUNC-为什么文件要截断.mp4
4-1 程序与进程区别-main函数是C程序的入口点吗?进程的生命周.mp4
4-2 进程生命周期的消亡atexit函数.mp4
4-3 进程上下文与环境变量putenv、setenv.mp4
4-4 进程创建:32位系统可以支持的–进程数32768.mp4
4-5 fork与进程创建:父子进程推进顺序详解.mp4
4-6 fork—子进程不是从main而是从fork返回的地方.mp4
4-7 僵尸进程的避免:系统资源没有放在进程的推进.mp4
4-8 exec与进程映像替换:exec就是对进程实现了换头手术.mp4
4-9 守护进程.mp4
4-10 进程编程综合实践:简易shell的模拟实现.mp4
4-11 简易shell的模拟实现(一):execvp与命令执行.mp4
4-12 简易shell的模拟实现(二):fork,wait与Mini.mp4
5-1 标准C库中的IO函数实际上就是对POSIX IO函数的封装.mp4
5-2 fileno获取当前进程的文件描述符.mp4
5-3 readdir-readdir_r操作目录.mp4
5-4 综合应用pwd命令的实现(上):inode与文件对应关系的解.mp4
5-5 综合应用pwd命令的实现(下):文件在目录中的含义.mp4
5-6 文件锁的概念.mp4
5-7 文件锁-数据独占访问的一种形式.mp4
5-8 文件区域锁.mp4
6-1 一切设备皆文件:从tty看终端设备同样具有属性、权限.mp4
6-2 终端与进程挂钩:Linux有一套维护设备连接的机制.mp4
6-3 termios结构应用:设备文件的控制就是设置对应的标志位.mp4
6-4 类Unix交互风格的程序的实现:规范模式、raw模式的案例.mp4
6-5 IO重定向与Linux概念和内涵.mp4
6-6 stdin重定向到文件.mp4
6-7 dup-dup2重定向详解:open-close-dup-c.mp4
7-1 信号本质是软中断.mp4
7-2 进程对信号的3种响应:SIG_DFL信号默认处理函数的恢复.mp4
7-3 alarm的定时器作用与sleep的可中断式睡眠.mp4
7-4 定时器信号案例(上):飘动的字符串.mp4
7-5 定时器信号案例(下):飘动的字符串.mp4
7-6 传统信号的弊端:信号处理函数的可重入性.mp4
7-7 信号阻塞block和未决pending的意义.mp4
7-8 信号排队与丢弃现象:信号不可以为进程中的事件计数.mp4
8-1 函数是线程的载体.mp4
8-2 第一个线程程序:使用lpthread编译多线程程序.mp4
8-3 并发编程中的–类与时间有关的错误.mp4
8-4 单条C语句依然存在线程不安全的风险.mp4
8-5 使用信号量实现互斥.mp4
8-6 缓冲区读写:生产者-消费者模型的实用案例.mp4
8-7 负载均衡的线程分配难以建立:工程中的多线程开发经验分享(一).mp4
8-8 线程组ID(ttid)、工程中的多线程开发经验分享(二).mp4
8-9 pthread_Join:工程中的多线程开发经验分享(三).mp4
9-1 IPC概念的外延:网络通信也是进程间通信的一种.mp4
9-2 mkfifo-第一个管道程序.mp4
9-3 管道的建立依赖两个程序的通信.mp4
9-4 Pipe与匿名管道.mp4
9-5 利用Pipe在父子进程间传递数据:子进程中关闭fd1.mp4
9-6 利用Pipe实现Linux管道命令-.mp4
9-7 SIGPIPE信号、未正确关闭读写端的管道异常.mp4
9-8 ipcs和msgget:消息队列的创建.mp4
9-9 msgsnd和msgrcv:消息队列的接受与删除.mp4
9-10 shmget和shmmat:共享内存的通信.mp4
9-11 信号在IPC中的风险:kill信号发送、多线程不宜.mp4
9-12 popen与协同进程:从进程中获取数据是进程对文件的抽象.mp4
10-1 Socket的内涵:本地socket通信的演示案例.mp4
10-2 Socket网络编程案例-初学者的一个常见bug调试.mp4
10-3 htons与kill 服务进程-网络字节序引起的端口号bug.mp4
10-4 提领指向不完全类型的指针bug的解决-socket的封装案例.mp4
10-5 mini型http服务器的实现(上):利用rio增强IO流.mp4
10-6 mini型http服务器的实现(中):静态http解析的实现.mp4
10-7 mini型http服务器的实现(下):CGI的实现.mp4
代码和笔记.zip
下载地址:
百度网盘 天翼云盘 夸克网盘
评论(0)