Linux应用
文章平均质量分 76
xiaolz88
在嵌入式大坑里摸爬滚打的小白
展开
-
IO多路复用 epoll 以及 epoll反应堆模型
一 IO多路复用epoll相关接口1.int epoll_create(int size);功能:创建一个epoll句柄size: 用来告诉内核这个监听的数目一共有多大,参数 size 并不是限制了 epoll 所能监听的描述符最大个数,只是对内核初始分配内部数据结构的一个建议值;2.int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);功能:对要操作的文件fd进行上树或者下树操作;epfd: 是epoll_c原创 2021-09-27 20:00:15 · 1193 阅读 · 0 评论 -
C++实战案例----基于多态的企业员工管理系统
前言:本案例是b站黑马C++视频教程里面的,本人学了一段时间的C++,然后也看一了部分视频,然后按照视频讲义在linux环境下敲了一遍。本人感觉学习C++语言还是要勤动手才行;一. 本项目通过手动敲一遍培养了自己的C++代码的手感,毕竟以前是写C代码的,起初写C++代码还是有点不太习惯,但是通过本项目的训练,我觉得自己已经慢慢培养了C++代码的手感;二.写代码代码的需求:可以通过视频的讲义中查看:本教程主要利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,原创 2021-07-12 23:38:01 · 422 阅读 · 3 评论 -
c++ -- 多态的含义、原理剖析
一. C++中的多态1.在c++中多态分为动态哦多态和静态多态;静态多态:像函数重载和运算符重载就是静态多态,一个显著的特点就是复用函数名;动态多态:派生类和虚函数实现运行时多态;2.动态多态和静态多态的区别静态多态函数地址早绑定—在编译阶段就已经确定了函数的地址;动态多态函数地址晚绑定—在运行阶段确定函数地址;class Animal{public: void speek(void) { printf("animal speek\n"); }};class Cat:pub原创 2021-07-06 00:07:10 · 182 阅读 · 0 评论 -
Linux IO多路复用--select
一.IO多路复用的目的在linux中IO多路复用的一个目的就是让应用程序在一个进程同时检查多个文件描述符,看这些文件描述符是否准备好了执行IO操作(看IO系统调用是否可以非阻塞地执行)。实际上这些操作都不会执行实际的IO操作,他们只是告诉我们某个文件描述符已经处于就绪状态了,我们需要调用其他的接口来完成实际的IO操作。在linux中为我们提供了三种技术:select,poll,epoll;1.1 三种技术的优缺点:优点:select 和 poll存在时间比较长,具有较好的可移植性;缺点:在同时原创 2021-06-30 23:37:35 · 338 阅读 · 0 评论 -
linux线程同步机制二:条件变量(Condition Variable)
一.条件变量的使用场景1.1 在生产者-消费者模型中,生产者线程负责生成一些“产品单元”来供主线程消费。主线程则使用while()不停的查询是否有“产品单元”可供消费。这样的编程模式会造成CPU资源浪费。如果采用条件变量的机制,就不存在这一问题了。允许主线程休眠,直到等到另一线程的信号通知再去执行其他的一些动作。1.2. 在实际使用的场景中,条件变量经常结合互斥量来使用。条件变量就共享变量的状态改变发出通知,而互斥量则提供对该共享变量访问的互斥。二. 条件变量的类型2.1 静态分配的条件变量条件变原创 2021-06-23 23:42:44 · 345 阅读 · 0 评论 -
linux同步机制_互斥量(mutex)
一.linux中线程间通信同步机制方法1——互斥量(mutex)1.为啥要有互斥量?在linux编程享受多线程带来便利的同时,也需要注意多线程在访问一段共享资源的代码片段(术语:临界区),这段代码的执行不应该被其他线程中断,要保证这段代码的执行是原子操作。其中linux中的互斥量就可以保证多线程对共享资源访问的时的原子操作。当然还有其他的方法,比如:条件变量。本文我们只介绍互斥量(mutex).二.互斥量的使用方法2.1.静态分配的互斥量且使用默认属性初始化直接使用PTHREAD_MUTEX_I原创 2021-06-22 01:28:07 · 465 阅读 · 0 评论 -
基于C语言实现的一个ftp_client demo
一 .FTP协议FTP全称:文件传输协议(File Transfer Protocol), 不同于普通的C/S通信方式,ftp协议是建立两个链路去传输数据和控制消息。有两种工作模式:主动连接模式(PORT)和被动连接模式(PASV),这两种工作方式的描述都是从服务器角度出发描述的。简单来说就是:服务器主动连接客户端,这就是主动模式;如果是客户端主动去连接服务器就是被动模式。主动模式:客户端随机打开一个大于1024的端口N向服务器命令端口(21),发起连接,同时开放N+1端口监听,并向服务器发出“por原创 2021-06-20 22:27:40 · 883 阅读 · 3 评论 -
ubuntu16.04 搭建http服务器总结
一 环境:ubuntu 16.04 任务:基于ubuntu搭建http服务器,可以远程访问该服务器。参考: (1)https://blog.csdn.net/cfycyf/article/details/79420007 (2)https://blog.csdn.net/qq_38240926/article/details/99610158...原创 2020-01-07 23:30:28 · 1712 阅读 · 0 评论 -
ubuntu16.04 搭建ftp服务器总结
一 环境:ubuntu 16.04 任务:基于ubuntu搭建ftp 服务器,可以远程访问该服务器。参考: (1)https://www.cnblogs.com/YangJieCheng/p/8252577.html 第一步: 首先保证ubuntu可以访问外网: 验证方法:基于shell 终端,ping www.baidu.......原创 2020-01-05 17:16:55 · 583 阅读 · 0 评论 -
linux常用知识点小记
1、linux中使用 -I来指定头文件所在的路径;2、可以在某个目录下查找:例如在/usr/include 目录下查找EXIT_结尾的宏定义,可以用grep EXIT_ *.h3、在linux中库是预先编译好的一组函数的集合,他们是按照可重用的原则编写的。在linux中标准库文件一般存储在/usr/lib和/lib目录下面。linux中库的名字是有一定的规则的:以lib开始,后面表示的具体...原创 2019-06-12 22:54:52 · 172 阅读 · 0 评论