
linux
Fly_bit
不要让虚无的欲望磨灭了真正的渴望
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
子进程的异步等待方式
等待分为阻塞等待和非阻塞等待,我们非阻塞等待来实现异步。 1.子进程终止时会给父进程发送SIGCHID信号 2.为了验证子进程在退出时确实向父进程发送了SIGCHID信号,我们对SIGCHID信号进行捕捉。 很显然我们是捕捉到SIGCHID信号的。3.wait()和waitpid()的区别 <1>wait 函数:用来等待任何一个子进程退出,由父进程调用。include<sys/ty原创 2017-06-16 16:44:21 · 569 阅读 · 0 评论 -
用Makefile 创建进度条
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,而Makefile定义了一系列的规则来制定,那些文件需要先编译,那些文件需要后编译,那些文件需要重新编译,甚至于一些更为复杂的功能操作,因为Makefile就像是一个shell脚本一样,其中也可以执行操作系统的命令。 Makefile的好处就是实现“”自动化编译“”,只需要一个make命令,整个工程完全自动编译,极大地提高了软原创 2017-04-04 14:06:58 · 431 阅读 · 0 评论 -
在linux环境下 通过示例对目录的三种权限进行幽默解读
在我们的生活中受权限限制的情况太多,简练的总结就是这三种 读、写、执行,字面上我们已经很容易理解,但我还是想举一个不是很恰当的例子来加深理解。 人各有志,作为那些不是很喜欢本专业知识的当代的大学生来说,挂科自然是家常便饭。然而清考不过在学校不给学位证,学生压力会从四面八方飞来。有些人就会想如果能进教务管理系统该成绩就好了,那么这时候就涉及到权限了。 我们无非只原创 2017-03-20 13:42:33 · 257 阅读 · 0 评论 -
关于Linux系统中 Access Modify Change 三个时间的理解
首先它们的概念: atime(Access time):最后一次访问文件或目录的时间 mtime(Modify time): 最后一次修改文件或目录的时间 ctime(Change time):最后一次改变文件或目录(改变的是属性)的时间 下面举个如何改变他们时间的例子来更深刻的了解他们的作用: 这是我code文件未修改之前的信息原创 2017-03-20 13:16:49 · 294 阅读 · 0 评论 -
多线程、多进程TCP服务器比较
背景小知识 关于进程和线程 1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位; 2.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线; 3.进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见; 4.调度和切换:线程上下文切换比进程上下文切换要快得多。原创 2017-08-03 22:23:51 · 1587 阅读 · 0 评论 -
select、poll、epoll优缺点总结
之前在我的几篇文章中已经对这三个服务器进行了简单的实现: IO多路复用之select IO多路复用之poll IO多路复用之epollselect、poll、epoll共同优点: (1)占用资源少,因为是单进程处理。(相比于多进程、多线程) (2)性能好,可一次等待多个进程。一、select服务器总结: select优点: ( 1)select()的可移植性更好,在某些Unix系统上原创 2017-08-01 22:52:19 · 1723 阅读 · 0 评论 -
IO多路复用之epoll
背景: 在Linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。 相对于select和poll来说,epoll更加灵活,原创 2017-08-01 21:23:50 · 829 阅读 · 0 评论 -
IO多路复用之poll
poll和select区别: ① poll服务器监视的文件描述符无上限; ② poll将输入、输出参数进行分离。一、poll函数 函数格式如下所示:#include <poll.h> int poll ( struct pollfd * fds, unsigned int nfds, int timeout);不同与select使用三个位图来表示三个fdset的方式,poll使用一个 poll原创 2017-08-01 19:47:55 · 697 阅读 · 0 评论 -
IO多路复用之select
1、背景知识 我们首先来看看服务器编程的模型,客户端发来的请求服务端会产生一个进程来对其进行服务,每当来一个客户请求就产生一个进程来服务,然而进程不可能无限制的产生,因此为了解决大量客户端访问的问题,引入了IO复用技术。 即:一个进程可以同时对多个客户请求进行服务。 也就是说IO复用的“介质”是进程(准确的说复用的是select和poll,因为进程也是靠调用select和p原创 2017-08-01 19:08:25 · 561 阅读 · 0 评论 -
gdb调试多线程和多进程
一、关于gdb gdb是linux下的代码调试工具,使用前需要在源代码生成时加上-g选项,使用时命令:gdb+文件名,退出时命令:ctrl+d或quit调试过程常用命令: list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。 list/l 函数名:列出某个函数的源代码。 r或run:运行程序。 s或step:进入函数调用 b原创 2017-07-15 15:13:39 · 508 阅读 · 0 评论 -
捕捉信号与sleep模拟
一、捕捉信号1、对信号的三种处理方式:(1)忽略此信号:大多数信号都可使用这种方式进行处理,但有两种信号却决不能被忽略。它们是:SIGKILL和SIGSTOP。这两种信号不能被忽略的,原因是:它们向超级用户提供一种使进程终止或停止的可靠方法。另外,如果忽略某些由硬件异常产生的信号(例如非法存储访问或除以0),则进程的行为是示定义的。 (2)直接执行进程对于该信号的默认动作 :对大多数信号的系统默认原创 2017-06-14 11:32:42 · 470 阅读 · 0 评论 -
关于线程
一、线程的概念: 我们知道进程是在各自独立的地址空间中运行,进程之间共享数据需要mmap(映射)或者进程间通信机制,如果我们需要在一个进程中间同时进行多个控制流程,这是我们就引入了线程。 (1)线程和进程的区别: --线程在进程的地址空间执行 --线程是进程的执行分支 --线程是调用的基本单 --进程是分配资源的基本单位 --Linux下的进程叫做轻量级进程 --Linux原创 2017-06-07 15:14:33 · 746 阅读 · 0 评论 -
线程安全和可重入函数
一、什么是线程安全? 1.线程安全就是指多线程访问同一代码,不会产生不确定的结果。也是就说线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读完,其他数据才可以使用,线程安全不会出现数据不一致或者数据污染。反之,线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得数据是脏数据。 2.有这么四类函称为线程原创 2017-06-13 23:20:57 · 409 阅读 · 0 评论 -
网络---ARP协议、脚本
一、ARP协议: 1.什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。 2.为什么要有ARP? OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface). IP地址原创 2017-06-24 16:03:08 · 1023 阅读 · 0 评论 -
Linux进程间通信---管道篇
一、进程间通信 每个进程各自有不同的用户空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲取,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 进程间通信的本质是让不用的进程能看到一份公共资源。 进程间通信主要用于:数据传输、资源共享、通知事件、进程控制原创 2017-06-23 09:19:31 · 490 阅读 · 0 评论 -
对死锁的理解
一、死锁的定义: 死锁是指两个或两个以上的进程在执行过程中,由于资源竞争或者由于彼此通信而造成的一种阻塞现象,若无外力作用,他们都将无法推进下去,此时称系统处于死锁状态,这些永远在互相等待的进程称为死锁进程。二、死锁的原因: (1)因为系统资源不足; (2)进程运行推进的循序不合适; (3)资源分配不当;三、死锁产生的四个必要条件: (1)互斥条件:进程(线程)所申请的资源在一段时原创 2017-06-06 22:58:06 · 1679 阅读 · 0 评论 -
守护进程
一、什么是守护进程?linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和用户交互。其他进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务不受用户注销的影响,他们一直运行着。这种进程有一个名字就叫做守护进程(Daemon)。 它独立于控制终端,并且周期性的执行某种任务或等待处理某些发生的事件。 我们有ps axj 命令查看系统原创 2017-06-16 17:15:33 · 641 阅读 · 0 评论 -
(项目)万年历online
一、web框架原理图 如果服务器采用非CGI方式处理浏览器的请求,则直接返回浏览器请求的资源即可。采用CGI方式的话则要执行CGI程序: 二、多线程http服务器的工作方法 1.http/1.0版本采用的是短连接: 我们要搭建的是多线程服务器,并且使用短连接,所以每当建立一个连接之后,就创建一个线程去处理这个请求,并将这个线程设置成分离状态,然后主线程继续处于监听原创 2017-09-15 01:13:12 · 692 阅读 · 0 评论