[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
序言:
搞编程,学 C/C++ 怎么不能学习一下 Linux ? 了解一下底层的知识库和程序运行原理?附上个人学习目录,此系列学完之后,回来预期会继续更新 Qt 相关的知识 QtExamples ,将更多的一些知识分享出来。
Linux 系统学习三部曲:❶基础编程 ❷系统编程 ❸网络编程
说明:
Linux / Unix
Example:文章中的所有例子均在 MacOS && UOS 上面编译和运行成功。
环境:
💻: MacOS 10.14.6
📎 gcc/g++ 9.2.0
📎 gdb 8.3
💻: UOS20 (Debian8+)
📎 gcc/g++ 8.3.0
📎 gdb 8.0
目录:
服务器开发之 Linux 基础编程:
gcc/g++:
- 在MacOS上面通过brew命令安装gcc编译器集
- gcc和g++的区别,编译.c和.cpp文件的区别
- gcc工作流程:预处理,编译,汇编,链接
- Linux下使用gcc生成静态库.a和调用(图文并茂,坑已踩完)
- Linux下使用gcc生成动态库.so和调用(图文并茂,坑已踩完)
- 在Linux中,编写入门的makefile文件,然后逐渐迭代
gdb:
程序运行原理,文件描述符,PCB:
- Linux中文件操作,软硬链接ln,用户权限chmod、chown,文件查找和检索find、grep,压缩gz,bz2
- Linux中虚拟地址空间、pcb、文件描述符、C库函数工作流程、标准库和系统库函数区别
- Linux中man手册,阻塞和非阻塞,stat,文件操作和遍历,文件描述符复制dup()
服务器开发之 Linux 系统编程:
进程间通信:
- Linux中fork创建兄弟子进程,验证进程之间全局变量不共享,exec函数族
- Linux中孤儿进程,僵尸进程,进程回收wait、waitpid函数
- 父子进程、兄弟子进程之间通信方式–匿名管道pipe(适用于有血缘关系的进程)
- Linux中普通的进程间通信方式–有名管道fifo(适用于无血缘关系的进程)
- Linux中进程间的通信方式–内存映射区mmap()
信号和守护进程:
- Linux中系统信号初识,和函数kill,raise,abort,alarm,setitimer
- Linux中未决信号集和阻塞信号集的状态关系sigaddset,以及捕捉信号函数
- Linux中创建守护进程setsid()
多线程:
- Linux中创建多线程实例pthread_create()
- Linux中多线程操作函数pthread_exit()、pthread_jion()、pthread_detach()、pthread_cancel()
- Linux中使用使用互斥量(锁)Mutex来操持多线程同步执行pthread_mutex_lock()
- Linux中原子操作,死锁原因以及解决方法,读写锁的属性和函数使用pthread_rwlock_wrlock()
我所想说:🙋♀️
虽然不盈利,会累,但因自由和开源软件而写的开心ya, 鸭鸭
但 github 上,你的 star 和 fork 是我最大鼓励,也是我一直持续写下去的动力…
由于会经常更新新的文章,所以暂时先使用这一份目录更新:https://github.com/xmuli/linuxExample
更新时间: 2020-04-29