Linux编程基础
一起学习,一起飞
这个作者很懒,什么都没留下…
展开
-
Linux静态库与动态库
文章目录一、源代码的组织二、静态库三、动态库四、静态库与动态库的优缺点1、优点2、缺点五、动态库的优缺点1、优点2、缺点六、编译的优先级七、版权声明一、源代码的组织我们通常把公用的自定义函数和类从主程序中分离出来,函数和类的声明在头文件中,定义在程序文件中,主程序中要包含头文件,编译时要和程序文件一起编译。示例(public.h)/* * 程序名:public.h,公共功能函数声明的头文...转载 2020-05-06 14:09:14 · 89 阅读 · 0 评论 -
Linux调用可执行程序
文章目录一、exec函数族二、system函数三、版权声明在C/C++程序中,经常需要调用其它的程序来先成某项任务,例如其它的C/C++程序、操作系统命令或Shell脚本,C/C++提供了exec函数族和system函数来实现这个功能。一、exec函数族exec函数族提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码...转载 2020-05-06 13:52:39 · 542 阅读 · 0 评论 -
Linux线程同步
文章目录一、线程同步的概念二、互斥锁1、初始化锁2、阻塞加锁3、非阻塞加锁4、解锁5、销毁锁(此时锁必需unlock状态,否则返回EBUSY)三、示例程序四、版权声明一、线程同步的概念线程同步?怎么同步?一起运行?一起停止?我当年听说线程同步这个词的时候,也是一头雾水。在人们的日常生活中的锁大概有两种:一种是不允许访问;另一种是资源忙,同一时间只允许一个使用者占用,其它使用者必须要等待。1...转载 2020-05-06 13:49:10 · 173 阅读 · 0 评论 -
Linux多线程
文章目录一、线程的概念二、线程的使用1、创建线程2、线程的终止3、多线程的socket服务端三、线程资源的回收四、查看线程五、应用经验六、版权声明一、线程的概念和多进程相比,多线程是一种比较节省资源的多任务操作方式。启动一个新的进程必须分配给它独立的地址空间,每个进程都有自己的堆栈段和数据段,系统开销比较高,进行数据的传递只能通过进行间通信的方式进行。在同一个进程中,可以运行多个线程,运行于同...转载 2020-05-06 13:46:38 · 200 阅读 · 0 评论 -
Linux信号量
文章目录一、信号量的概念二、相关函数1、semget函数2、semctl函数3、semop函数三、示例程序1、示例(book259.cpp)2、测试方法四、其它的操作命令五、课后作业六、版权声明一、信号量的概念信号量(信号灯)本质上是一个计数器,用于协调多个进程(包括但不限于父子进程)对共享数据对象的读/写。它不以传送数据为目的,主要是用来保护共享资源(信号量、消息队列、socket连接等),...转载 2020-05-06 13:45:02 · 1341 阅读 · 0 评论 -
Linux共享内存
文章目录一、共享内存的概念二、相关函数1、shmget函数2、shmat函数3、shmdt函数4、shmctl函数三、示例程序四、其它的操作命令五、版权声明一、共享内存的概念共享内存(Shared Memory)就是允许多个进程访问同一个内存空间,是在多个进程之间共享和传递数据最高效的方式。操作系统将不同进程之间共享内存安排为同一段物理内存,进程可以将共享内存连接到它们自己的地址空间中,如果某...转载 2020-05-06 13:40:18 · 1619 阅读 · 0 评论 -
Linux信号
文章目录一、如何让程序在后台运行1、加“&”符号2、采用fork3、如何让中止后台运行中程序二、signal信号1、信号的基本概念2、信号的类型3、signal库函数4、信号有什么用5、信号应用示例三、发送信号四、课后作业五、版权声明一、如何让程序在后台运行在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成,在程序运行的过程中,也可以用Ct...转载 2020-05-06 13:36:42 · 362 阅读 · 1 评论 -
Linux进程通信
文章目录一、进程通信二、应用经验三、版权声明进程的数据空间是独立的,私有的,不能相互访问,但是在某些情况下进程之间需要通信来实现某功能或交换数据,包括:1)数据传输:一个进程需要将它的数据发送给另一个进程。2)共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如通知进程退出...转载 2020-05-06 13:32:18 · 82 阅读 · 0 评论 -
Linux多进程的应用
文章目录一、并发的服务端1、服务端2、客户端二、僵尸进程1、僵尸进程产生的原因2、僵尸进程的危害3、如何解决僵尸进程三、应用经验四、课后作业五、版权声明前面的章节介绍socket通信的时候,socket的服务端在同一时间只能和一个客户端通信,并不是服务端有多忙,而是因为单进程的程序在同一时间只能做一件事情,不可能一边等待客户端的新连接一边与其它的客户端进行通信。一、并发的服务端如果把sock...转载 2020-05-06 13:30:37 · 299 阅读 · 0 评论 -
Linux多进程
文章目录一、进程的概念二、进程的编号1、查看进程2、getpid库函数三、多进程四、课后作业五、版权声明一、进程的概念什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序,当输入指令执行一个程序的时候,对系统而言,它将启动一个进程。进程就是正在内存中运行中的程序,Linux下一个进程在内存里有三部分的数据,就是“代码段”、”堆栈段”和”数据段”。”代码段”...转载 2020-05-06 13:28:31 · 264 阅读 · 0 评论 -
封装socket
文章目录一、C的封装方法1、客户端2、服务端二、C++的封装方法1、客户端2、服务端3、C++封装的意义三、应用经验四、课后作业五、版权声明book241.cpp和book242.cpp程序已经有点长了,有些啰嗦了,如果还想扩展功能,或用于多进程、多线程,程序结构将非常复杂。不管是socket通信程序的客户端还是服务端,准备工作的代码又长又难看占地方,影响了主程序的结构,必须分离出来。如何分...转载 2020-05-06 13:24:39 · 429 阅读 · 0 评论 -
socket通信基础
文章目录一、socket通信的概念二、套接字(socket)三、socket通信的过程在这里插入图片描述四、客户/服务端模式服务端的工作流程2、客户端的工作流程在这里插入图片描述五、注意事项1、别去纠缠细节2、服务端程序绑定地址3、服务端程序绑定的通信端口4、客户端程序指定服务端的ip地址5、客户端程序指定服务端的通信端口6、send函数7、recv函数8、服务端有两个socket9、程序退出...转载 2020-05-06 13:23:20 · 565 阅读 · 0 评论 -
学习Linux编程前的准备
文章目录一、计算机基础知识的学习二、Linux操作系统的学习内容三、计算机网络的学习内容四、学习策略五、版权声明如果您是非计算机相关专业零基础兄弟,在学习Linux编程基础之前,建议先学习计算机基础、Linux操作系统基础知识和计算机网络基础知识。计算机基础知识包括了很多常识性的内容,学了不一定有用,但是如果对一些基本常识不了解,可能会闹笑话。我们学习的目标是成为C/C++程序员,不是Lin...转载 2020-05-06 13:18:35 · 396 阅读 · 0 评论