![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
eagle_007WH
为梦想坚持到底,不要惯着自己。
展开
-
Lunix中三个重要时间和find命令
一、定义Chang time:简称ctime,一个文件或目录的更改时间。在Linux中,基本上无法知道一个文件的精确创建时间,更改时间是指文件或目录的属性(所有者,权限等等)被修改的时间。如果一个文件需要备份的话,dump命令需要用到ctime,你可以用ls-lc命令查看ctime。Access time:简称atime,一个文件或目录的访问时间。就是一个文件的数据最后一次被访问的时间,例原创 2017-02-16 07:33:29 · 893 阅读 · 0 评论 -
I/O多路转接之epoll
一、什么是epoll epoll是什么?按照man⼿手册的说法:是为处理⼤大批量句柄⽽而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel2.5.44),它⼏几乎具备了之前所说的⼀一切优原创 2017-06-14 17:40:07 · 529 阅读 · 0 评论 -
eval命令
功能:重新运算出参数的内容语法:eval [参数]补充说明: eval可读取一连串的参数,然后再依参数本身的特性来执行参数:参数可以不止一个,彼此之间用分号分开1. eval command-line其中command-line是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次。如:pipe="|"eval l原创 2017-06-27 12:22:11 · 900 阅读 · 0 评论 -
I/O多路转接之poll
poll()函数:这个函数是某些Linux系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明:#include int poll(struct pollfd fds[], nfds_t nfds, int timeout);参数说明: fds:是一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符原创 2017-06-27 17:47:13 · 706 阅读 · 0 评论 -
进程池线程池
池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资转载 2017-06-03 17:17:12 · 419 阅读 · 0 评论 -
实现多进程多线程服务器
多进程: 客户端:#include#include#include#include#include#include#includestatic int startup(const char *_ip,int _port){ int sock=socket(AF_INET,SOCK_STREAM,0); if(sock { pe原创 2017-06-03 17:10:12 · 533 阅读 · 0 评论 -
Linux进程调度算法
一、概念 操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可占用资源或占用资源 在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常原创 2017-02-19 11:21:47 · 1375 阅读 · 1 评论 -
进程间通信-------共享空间
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运⾏效率较低⽽设计的。往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。共享内存效率高,因为不像管道以及消息队列一样,读写时进行拷贝两次,而共享内存直接进行内存读写,不需要进行拷贝。共享内存申请的空间内存在堆栈之间。生命周期为随内核。 32位平台下一个进程认为自己的地址空间为4G,0原创 2017-03-21 23:02:08 · 771 阅读 · 0 评论 -
进程间通信——信号量
一、什么是信号量 信号量的本质是一种数据操作锁,它本⾝身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。当请求一个使用信号量来表示的资源时,进程需要先读取信号量的值来判断资源是否可用。⼤于0,资源可以请求,等于0,无资源可⽤,进程会进入睡眠状态直⾄资源可⽤。当进程不再使⽤原创 2017-03-20 20:59:10 · 631 阅读 · 0 评论 -
进程的程序替换与shell的实现
在Linux系统中,⽤用fork创建⼦子进程后执⾏行的是和⽗父进程相同的程序(但有可能执⾏行不同的代码分⽀支),⼦进程往往 要调⽤用⼀一种exec函数以执⾏行另⼀一个程序。当进程调⽤用⼀一种exec函数时,该进程的⽤用户空间代码和数 据完全被新程序替换,从新程序的启动例程开始执⾏行。调⽤用exec并不创建新进程,所以调⽤用exec前后该进程的id并未改变。Linux操作系统中的shel原创 2017-03-02 15:43:15 · 863 阅读 · 0 评论 -
atexit(),Linux中的粘滞位和FILE结构体
我们在这篇博客中主要讨论三个知识点:分别是atexit(),Linux中的粘滞位和FILE结构体。 一、验证连续注册三个函数,看输出顺序(atexit) 源码:#include#include#includevoid fun(){ printf("hello fun\n"); return;}vo原创 2017-02-21 14:30:17 · 279 阅读 · 0 评论 -
Linux中模拟实现进度条
一、背景1、进度条实现原理 进度条的实现必须了解以下几个知识点,回车换行、缓冲区 换行:换行就是光标只从上一行行尾移至下一行行尾 回车:回车就是光标从行尾移至行首 回车换行:回车换行就是光标从行尾移至下一行行首 缓冲区:指由多个以不同速度或优先级运行的硬件或程序进程共享的数据存储区,在其中暂时保存数据。缓冲区使进程之间的相互等待变少了。先结束的进程可以把原创 2017-02-21 13:03:45 · 868 阅读 · 0 评论 -
Linux配置VIM
配置⽂文件的位置在⽬目录 /etc/ 下⾯面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有⽤用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置⽂文件,命名为:“.vimrc”。例如,/root⽬目录下,通常已经存在一个.vimrc⽂文件。1. 切换自己的登陆名称 su XXX 输⼊入密码即可2. 设置语法高亮syntax on3. 显示行号se原创 2017-02-19 12:15:43 · 1095 阅读 · 1 评论 -
Linux中内核控制块task_struck
广义上,所有的进程信息被放在⼀一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。进程控制块: 每个进程在内核中都有⼀一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。现在我们全⾯面了解⼀一下其中都有哪些信息。 在Linux中,这个结构叫做task_struct。task_struct是Linux内核的⼀一种数原创 2017-02-18 14:40:12 · 880 阅读 · 0 评论 -
crond与crontab
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护进程。基本用法 crontab -u //设定某个用原创 2017-07-20 12:02:01 · 371 阅读 · 0 评论