linux编程学习目录

参考资料:
《UNIX环境高级编程第三版》
《Linux/UNIX系统编程手册》
《UNIX网络编程(第1卷:套接口API)》
《TCP/IP详解卷一》


Linux 学习交流群: 610441700 , 欢迎大家加群一起学习交流,共同进步


系统编程

文件I/O

1-文件IO—open/close函数

2-C标准的I/O缓存和FILE结构体

3-文件描述符和标准文件

4-文件描述符与打开的文件之间的关系

5-文件I/O—read/write函数

6-改变文件偏移量—lseek函数

文件和目录

7-linux ext2文件系统

8-linux ext2文件系统实验

9-dentry结构体和inode结构体

10-数据块寻址

11-获取文件信息—stat函数

12 - dup函数和dup2函数

13-文件权限相关函数—access,chmod,chown函数

14-unlink函数和删除文件过程

15-getcwd和chdir函数

进程环境

16-main函数和进程终止

17-atexit函数——进程终止

18-用fork函数创建新进程

19-孤儿进程与僵尸进程

20-wait,waitpid,waitid系列函数

信号

21-关于linux信号的基本使用

22-用setitimer函数实现计时器

线程基本介绍

23-创建线程的一些细节

24-线程共享资源问题

25-线程终止详解

26-设置线程分离属性

线程同步

27-线程同步——互斥量

28-线程同步——死锁现象

29-线程同步——读写锁和自旋锁

30-线程同步——条件变量

31-线程属性——互斥锁类型

32-线程控制——线程特定数据

进程间通信

33-进程间通信——管道

34-进程间通信——FIFO(命名管道)

35-System V 进程间通信

36-System V——创建共享内存

37-System V——共享内存函数详解

38-System V——消息队列

39-System V——信号量

40-System V——信号量的细节问题

文件加锁

41-fcntl设置文件锁

42-使用flock文件锁

内存映射

43-初窥内存映射mmap

44-共享文件映射

45-内存映射的陷阱

46-内存映射的保护和同步






网络编程

友情提示一下学习网络编程需要的基础:学过linux系统编程和计算机网络,熟悉常用的网络协议,典型的如tcp协议,udp协议等…… 会使用抓包工具,因为这些基础有助于你学习网络编程。

另外,本系列中的实验代码在编写过程中减少了错误处理,但是大家在编写网络程序时还是把对应的错误处理加上比较好,这样程序出错了就比较好调试。


tcp基本套接字编程

1-网络字节序和ip地址

2-创建并绑定“插座”

3-listen函数(主动socket和被动socket)

4-从tcp连接建立的角度分析connect函数

5-accept接受连接

6-基于TCP的客户端/服务端通信

7-客户端/服务端程序中TIME_WAIT状态

8-多进程并发服务器

网络编程中的基本异常

9-调用connect连接超时

10-在accept之前中止连接(连接异常)

11-服务端进程终止与SIGPIPE信号

12-服务器的几种异常

13-select重写客户端和tcp优雅关闭

14-改写tcp服务器

tcp套接字选项

15-SO_RCVBUF和SO_SNDBUF套接字选项

udp基本套接字编程

16-基于udp的客户端/服务端通信

17-sendto函数和异步错误

18-UDP的connect函数

高级I/O函数

19-高级I/O函数——套接字和标准I/O

unix域协议

20-unix域套接字地址结构

非阻塞I/O

21-非阻塞accept



努力更新中


以上内容长期修改,更新…
如果文章中有错误的地方或其他建议,请大家及时指出,感谢!!!

已标记关键词 清除标记
相关推荐
<p> 这是一门linux下c++通讯架构实战课程,针对c/c++语言已经掌握的很熟并希望进一步深造以将来用c++在linux下从事网络通讯领域/网络服务器的开发和架构工作。<br /> <br /> 这门课程学习难度颇高但也有着极其优渥的薪水(最少30K月薪,最高可达60-80K月薪),这门课程,会先从nginx源码的分析和讲解开始,逐步开始书写属于自己的高性能服务器框架代码,完善个人代码库,这些,将会是您日后能取得高薪的重要筹码。 </p> <p> <br /> </p> <p> <span style="color:#E53333;">本课程原计划带着大家逐行写代码,但因为代码实在过于复杂和精细,带着写代码可能会造成每节课至少要4~5小时的超长时间,所以老师会在课前先写好代码,主要的时间花费在逐行讲解这些代码上,这一点望同学们周知。如果你觉得非要老师领着写代码才行的话,老师会觉得你当前可能学习本门课程会比较吃力,请不要购买本课程,以免听不懂课程并给老师差评,差评也会非常影响老师课程的销售并造成其他同学的误解。</span> </p> <p> <br /> </p> <p> 这门课程要求您具备下面的技能:<br /> (1)对c/c++语言掌握的非常熟练,语言本身已经不是继续学习的障碍,并不要求您一定熟悉网络或者linux;<br /> (2)对网络通讯架构领域有兴趣、勇于挑战这个高难度的开发领域并期望用大量的付出换取高薪;<br /> <br /> 在这门课程中,实现了一个完整的项目,其中包括通讯框架和业务逻辑框架,浓缩总结起来包括如下几点:<br /> (1)项目本身是一个极完整的多线程高并发的服务器程序;<br /> (2)按照包头包体格式正确的接收客户端发送过来的数据包, 完美解决收包时的数据粘包问题;<br /> (3)根据收到的包的不同来执行不同的业务处理逻辑;<br /> (4)把业务处理产生的结果数据包正确返回给客户端;<br /> <br /> 本项目用到的主要开发技术和特色包括:<br /> (1)epoll高并发通讯技术,用到的触发模式是epoll中的水平触发模式【LT】;<br /> (2)自己写了一套线程池来处理业务逻辑,调用适当的业务逻辑处理函数处理业务并返回给客户端处理结果;<br /> (3)线程之间的同步技术包括互斥量,信号量等等;<br /> (4)连接池中连接的延迟回收技术,这是整个项目中的精华技术,极大程度上消除诸多导致服务器程序工作不稳定的因素;<br /> (5)专门处理数据发送的一整套数据发送逻辑以及对应的发送线程;<br /> (6)其他次要技术,包括信号、日志打印、fork()子进程、守护进程等等; </p> <div> <br /> </div>
<p> <span> </span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476"><span style="font-size:14px;"> </span></span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> 人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 </p> <p class="ql-long-24357476"> <br /> </p> <p class="ql-long-24357476"> 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; </p> <p> <span></span> </p> <p> <span style="color:#FF9900;"><span><span> </span></span></span> </p> <p class="ql-long-24357476"> <span style="background-color:#FFFFFF;color:#E53333;">【限时福利】</span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476">1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包!</span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476"><span>2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。</span><br /> </span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476">---------------------------------------------------------------</span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476" style="color:#E53333;">99元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。</span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span class="ql-author-24357476" style="color:#E53333;"><br /> </span> </p> <p style="font-size:11pt;color:#494949;"> <span> <img alt="" src="https://img-bss.csdn.net/202002140604337221.png" /></span> </p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页