Linux
文章平均质量分 71
460833359
这个作者很懒,什么都没留下…
展开
-
深入理解select、poll和epoll及区别
问题:如果我们先前创建的几个进程承载不了目前快速发展的业务的话,是不是还得增加进程数?我们都知道系统创建进程是需要消耗大量资源的,所以这样就会导致系统资源不足的情况。那么有没有一种方式可以让一个进程同时为多个客户端端提供服务?接下来要讲的IO复用技术就是对于上述问题的最好解答。对于IO复用,我们可以通过一个例子来很好的理解它。(例子来自于《TCP/IP网络编程》)某教室有10名学生和1名老师,这些学生上课会不停的提问,所以一个老师处理不了这么多的问题。那么学校为每个学生都配一名老师,也就转载 2021-11-13 17:53:27 · 148 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
如流,新一代智能工作平台select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); ...转载 2021-11-13 16:54:55 · 491 阅读 · 0 评论 -
select、poll、epoll之间的区别
(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态,但是它没有最大连接数的限制,原因是它是基于链表来存.转载 2021-11-13 16:51:21 · 125 阅读 · 0 评论 -
Linux vi编辑器上下箭头变成ABCD的问题
新手用 Linux 绝对懵逼,各种问题都来了,例如在 vi编辑器 里按上下左右箭头,显示的却是ABCD,简直日了狗!!!因为 Linux 预装的是 vim tiny, 我们需要安装vim full版本只要两条命令即可解决你的困扰卸载vim-tiny:sudo apt-get remove vim-common安装vim full:sudo apt-get install vim————————————————版权声明:本文为CSDN博主「一直在奔跑丶」的原创文章,遵循CC 4.0转载 2021-05-27 16:39:05 · 1275 阅读 · 1 评论 -
浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$@所有参数列表。如"...转载 2019-07-02 21:42:31 · 894 阅读 · 0 评论 -
Linux统计文件夹占用空间大小--du命令基本用法
命令行环境下要知道linux系统里一个文件夹以及其包含的文件实际所占用的空间大小,linux自带的命令 du可以很好地满足需求。其他的用法我就不一一写出来了,就列本人觉得会用得最多的,直接上:$ du -sh ./*118M ./Chemi4.0K ./CollectionFramework32M ./C程序设计 第四版 .谭浩强.扫描版pdf7.7M ...转载 2019-06-19 15:40:05 · 572 阅读 · 0 评论 -
Linux统计文件夹占用空间大小--du命令基本用法
命令行环境下要知道linux系统里一个文件夹以及其包含的文件实际所占用的空间大小,linux自带的命令 du可以很好地满足需求。其他的用法我就不一一写出来了,就列本人觉得会用得最多的,直接上:$ du -sh ./*118M ./Chemi4.0K ./CollectionFramework32M ./C程序设计 第四版 .谭浩强.扫描版pdf7.7M ...转载 2019-06-19 10:51:24 · 19085 阅读 · 0 评论 -
linux中字符串转换函数 simple_strtoul
Linux内核中提供的一些字符串转换函数:lib/vsprintf.c[html]view plaincopyprint?1.unsignedlonglongsimple_strtoull(constchar*cp,char**endp,unsignedintbase) 2.unsignedlongsimple_strto...转载 2019-06-12 16:51:16 · 452 阅读 · 0 评论 -
Linux内核驱动中关于字符串的相关操作
转自:http://www.360doc.com/content/12/1224/10/3478092_255969530.shtmlLinux内核中关于字符串的相关操作,首先包含头文件:[cpp]view plaincopyprint?#include<linux/string.h>可用函数包括如下:lib/string.c[cpp]view plai...转载 2019-06-12 16:42:28 · 989 阅读 · 0 评论 -
几个内核函数:filp_open、filp_read、IS_ERR、ERR_PTR、PTR_ERR
内核态文件操作在用户态,我们操作文件可以用C库函数:open()、read()、write()等,但是在内核态没有库函数可用,这时就需要用内核的一些函数:filp_open、filp_close、vfs_read、vfs_write、set_fs、get_fs等函数,在linux/fs.h和asm/uaccess.h中声明。参数说明:第一个参数表明要打开或创建文件的名称(...转载 2019-06-12 16:39:26 · 626 阅读 · 0 评论 -
linux内核态文件操作filp_open/filp_close/vfs_read/vfs_write
Linux系统成功的关键因素之一就是具有与其他操作系统和谐共存的能力。Linux系统的文件系统由两层结构构建:第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分,它位于用户程序和具体的文件系统之间。它对用户提供了标准的文件系统调用接口,对具体的文件系统(如EXT2、FAT32等),它通过一系列的对...转载 2019-06-12 16:35:50 · 1599 阅读 · 0 评论 -
Linux进程间通信之消息队列
本文依据以下思路展开,首先从宏观上阐述消息队列的机制,然后以具体代码为例进一步阐述该机制,最后试着畅想一下该通信机制潜在的应用。 消息队列是在两个不相关进程间传递数据的一种简单、高效方式,她独立于发送进程、接受进程而存在。 图1 消息队列通信机制示意图 首先从宏观的角度了解一下消息队列的工作机制。因为消息队列独立于进程而存在,为了区别不同的消息队列,需要以key值标记消息队列,这样两个不相关...转载 2018-06-04 14:56:42 · 227 阅读 · 0 评论 -
虚拟机中设置网络
VMWare中的几种网络配置(1)Bridged方式用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟系统相当于网络内的一台独立的机器,与本机共同插在一个Hub上,网络内其他机器可访问虚拟系统,虚拟系统也可访问网络内其他机器,当然与本机系统的双向访问也不成问题。(2)NAT方式这种方式也可以实现本机系统与虚拟系统的双向访问。但网络内其他机器不能访问虚拟系统,虚转载 2016-06-19 01:38:48 · 1408 阅读 · 0 评论 -
Linux 系统中安装网卡驱动时出现"设备eth0似乎不存在"解决办法
下配置文件(/etc/sysconfig/network-scripts),配置也没错。可以证明根本就不在我想想的范围之内。我就先用“service network restart”重启网络服务,发现网卡起不来。如下图:看到这个之后,我本以为是我在配置IP是把那个步骤搞错了,我就又反复的把IP地址配了好几编,还是不行。我就纳闷啦,难道我连IP都不知道转载 2016-06-19 01:34:14 · 17065 阅读 · 0 评论 -
虚拟机下安装Red Hat Linux
准备:1.VMware6.0虚拟机2.Red Hat Linux9.0(包括三个光盘镜像记为disk1.ios,disk2.ios,disk3.ios)安装:(注意:Ctrl+Alt将鼠标从虚拟机下释放)首先,安装虚拟机;并在虚拟机中设置好Linux镜像的路径其次,安装Linux操作系统。实施步骤,新建虚拟机->典型->Linux(选Red Hat Linux)->浏览(选原创 2015-12-04 11:03:43 · 1070 阅读 · 0 评论 -
Linux进程状态(ps stat)之R、S、D、T、Z、X
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行转载 2015-12-16 19:48:37 · 827 阅读 · 0 评论 -
多线程编程之pthread_create函数应用
pthread_create函数函数简介pthread_create是UNIX环境创建线程函数头文件#include函数声明int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *res转载 2015-10-01 14:10:05 · 388 阅读 · 0 评论