C++学习之Linux基础知识

本文介绍了程序员应掌握的技能,包括编程语言如C/C++,数据结构与算法,操作系统特别是Linux,网络通信如TCP/IP协议,数据库如MySQL,以及界面设计工具Qt。同时,深入探讨了UNIX和Linux的历史、特性,以及Linux内核和发行版的区别。此外,还提到了GCC编译工具和编程相关的POSIX标准。
摘要由CSDN通过智能技术生成

程序员必备的技能:
    1、一门编程语言:C语言、C++
    2、数据结构与算法:表、树、图、排序、查找、STL
    3、操作系统:Linux操作系统(学习操作系统的管理机制和运行规则)
    4、网络通信:TCP/IP(Socket技术、TCP、UDP、FTP、HTTP协议)
    5、数据库:MySQL(增删改查基础操作)
    6、界面设计:Qt

Linux操作系统课程内容:
    系统介绍、内存管理、文件管理、信号处理、进程管理、进程通信、线程管理、线程同步、网络通信

一、UNIX系统介绍
    最早的版本于1970年左右诞生于美国贝尔实验室,作者是丹尼斯·里奇,肯·汤姆逊
    最早的多用户、多任务、支持多种CPU架构
    具备高安全性、高可靠性、高稳定性,在构建发型商用服务器关键性业务的商用服务器中会进行使用,也能在嵌入式设备中架设
    Minix是一种基于微内核架构的类UNIX计算机操作系统,并开源给大学教学研究使用,Linux是受其启发

二、Linux系统介绍
    Linux,全称GNU/Linux,1991年由作者林纳斯·托瓦兹在校园网上发布了第一个Linux内核版本。
    是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统
    Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统

三、相关知识
    Linux的标志:企鹅,因为企鹅是南极洲的标志性动物,而当时南极是没有被任何国家占领,是属于全人类,符合Linux开源的风格
    GUN组织:G通用的N非商业类UNIX,目前全球最大的开源组织,负责维护和开发Linux的内核源
    GPL通用许可证:任何在带有GPL证书的代码的基础上开发、修改出来的软件、代码,也必须支持GPL许可证书,确保开源免费
    POSIX:可移植操作系统接口规范,Linux完全遵循该规范,UNIX极少部分有所不同,但也基本全部遵循
    Linux内核版本和发行版本:Linux只是表示内核是Linux,只要操作系统内核是Linux,则可以称系统属于Linux操作系统
                           完整的操作系统:内核+shell+界面软件
                           然后其他公司是在Linux内核的基础上,设计制作出不同样子、特点的Linux发行版,例如Ubuntu、RedHat、CentOS、debian、deepin
    
GNU编译工具:gcc
    多样化:它支持多种编程语言、支持各种操作系统
    gcc -v 可以查看是否安装了gcc以及版本信息
    编译构建过程:
        预处理:gcc -E xxx.c -o xxx.i
        编译:gcc -S xxx.i   ->xxx.s
        汇编:gcc -c xxx.s   ->xxx.o
        链接:gcc a.o b.o ...->a.out
    文件类型:
        .c .h .i .s .o
        .h.gch 如果存在会被优先使用,应及时删除
        .a 静态库文件
        .so 共享(动态)库文件
    编译参数:
        -E -S -c -o
        -std=gnu99 或者-std=c99(不建议)
        -Wall -Werror
        -L 指定库文件的查找路径
        -I 指定头文件的加载路径,优先于#
        -l 根据库名指定加载的库文件 -lm
        -pedantic 配合使用 -ansi,这告诉编译器要严格遵守ANSI标准,如果不符合会产生警告
        通用链表源码
        预处理指令:(是否支持预处理指令由编译器决定)
        #include <>/""
        #define 定义宏常量、宏函数
        #undef 删除宏
        #ifdef/#ifndef/#if
        #elif
        #endif
        
        #pragma pack(n) 设置对齐补齐的最大字节数
        #pragma once    相当于头文件卫士
        #pragma GCC dependency "文件名" 监控文件在上一次编译到这一次编译期间是否有修改,如果有会产生警告
        #pragma GCC poison key  设置key标识符为有毒的,禁止出现该标识符

        #error "提示信息"   提示错误    不会生成可执行文件
        #warning "提示信息" 提示警告
        #line n    设置行号为n,并且会影响后面的行号
            一般都与条件编译配合使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值