
Linux
文章平均质量分 78
aisheng_huo
这个作者很懒,什么都没留下…
展开
-
Linux中的文件与目录管理
在Linux中,一切皆文件1.0Linux中的文件类型1.普通文件(regular fille)第一个字符为[ - ]包括:①纯文本文档(ASCII):这是Linux系统中最多的一种文件类型,成为纯文本文档。是因为这里面的数据可以直接读到,例如数字,字母等等。②二进制文件(binary):Linux中的可执行文件(scripts,文字性批处理文件不算)就是这种格式的。③数据原创 2017-04-01 20:54:26 · 290 阅读 · 0 评论 -
进程间通信之管道
星期三, 13. 十二月 2017 06:34下午本篇博客主要讲解用于进程间通信的匿名管道和命名管道参考资料:UNIX环境高级编程邮箱:blbagony@163.com匿名管道 #include <unistd.h> int pipe(int pipefd[2]); //成功返回 0,失败返回 -1经由 pipefd 返回的两个文件描述符,pipefd[0] 为原创 2017-12-15 19:51:11 · 421 阅读 · 2 评论 -
程序替换
本篇博客主要讲解 linux 下程序替换函数邮箱:blbagony@163.com参考资料:UNIX 环境高级编程感谢观看,请多多指教exec 函数一般我们在一个进程中调用 fork 创建出子进程,该子进程往往需要执行另一个程序,此时我们就需要调用 exec 函数。当进程调用一种 exec 函数时,该进程的执行程序完全替换了新进程,而新程序则从其 main 函数开始执行。注意:exec 并不创建新原创 2017-12-07 17:35:03 · 318 阅读 · 0 评论 -
进程控制
本编博客主要介绍进程的一些基本概念感谢观看,欢迎提出问题联系方式:blbagony@163.com进程1. 进程标志每一个进程都有一个非负整数用来表示唯一的进程,这个整数就是进程 ID 可以用 ps 命令和 top 命令来查看。除了进程 ID 还有一些其他标识符。下列函数返回这些标识符2. 函数 fork已给现有的进程可以调用 fork 函数创建一个新进程。 frok 函数被调用一次返回两次原创 2017-11-27 16:20:24 · 200 阅读 · 0 评论 -
多线程的优缺点及线程池的引入
本篇博客主要讲解多线程的优缺点,以及何时使用线程池感谢巨人的肩膀参考资料:UNIX 环境高级编程、雷明:多线程的优缺点、sunflower:多线程的运用和好处 邮箱:blbagony@163.com简介典型的 UNIX 进程可以看作只有一个工作线程,CPU 在执行任务时实际上是在调度这些线程(线程是操作系统最小的执行单位),每一个线程都是由创建他的进程所管理,进程为线程分配资源,一个进程中的所有原创 2017-12-10 17:58:01 · 3473 阅读 · 0 评论 -
TCP三次握手四次挥手
本篇博客主要讲解 TCP 的三次握手和四次挥手的过程感谢观看,欢迎提出建议和问题联系方式:blbagony@163.com[参考资料] : linux高性能服务器编程此篇文章大多引用自此书。TCP 服务的特点传输层协议主要有两个:TCP 协议和 UDP 协议。TCP 协议相对于 UDP 协议的特点是:面向连接、字节流和可靠传输。使用 TCP 协议时通信双方必须先建立连接,然后才能开始数据的读写。原创 2017-10-06 09:02:12 · 303 阅读 · 0 评论 -
命名管道
命名管道与匿名管道相比,命名管道使两个没有血缘关系的进程看到同一份临界资源。管道创建:可以用mkfifo也可以用mknod#include #include int mkfifo(const char* filename, mode_t mode)int mknod(const char* filename, mode_t mode | S_SIFIF0原创 2017-08-01 17:14:14 · 373 阅读 · 0 评论 -
线程的同步与互斥
线程的同步与互斥线程的同步与互斥mutex (互斥量)每个线程专属的私有空间,其中上下文信息和栈私有空间很是重要。当多个线程在进程中运行时,他们看到同一份地址空间,这使得线程之间很容易的看到一份公共资源(临界资源),当多个线程看到同一份资源并对这份公共资源进行读写时,我们希望这份资源是原子性的,即我在使用这份资源时我不希望有其他执行流原创 2017-06-11 16:01:46 · 259 阅读 · 0 评论 -
线程的分离和结合
线程的分离和结合线程的分离和结合线程的分离和结合线程同步与互斥 有关分离线程线程的分离和结合在任何y个i时间点上,线程是可结合的(joinable)或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死。在被其他线程回收之前,它的存储器资源(例如栈)是不释放的。相反,一个分离的原创 2017-06-10 22:01:39 · 475 阅读 · 0 评论 -
管道(下)
命名管道命名管道简介概念命名管道的创建与读写实现简介之前我们所介绍的是匿名管道,它独有的特点适用于具有血缘关系的进程之间实现进程间通信命名管道则允许两个毫不相干的进程实现进程间通信。 创建命名管道用mkfifo()概念管道的一个不足之处是没有名字,因此,只能用于具有亲缘关系的进程原创 2017-06-09 16:11:10 · 271 阅读 · 0 评论 -
管道
管道(上)管道(上)为什么需要管道what is 管道(pipe)几种特殊情况总结为什么需要管道每一个进程在正常情况下都有自己的地址空间(address speace),这样的好处是让进程运行具有独立性,且凡是由进程编写的程序,该进程的稳定性好,(一个进程在自己的地址空间内运行,当他不小心崩溃了他也不会影响到其他进程),但原创 2017-06-08 15:55:29 · 245 阅读 · 0 评论 -
线程_上
线程线程简介线程创建线程等待线程终止简介简单来说线程就是进程的一个分支,在进程内部运行,这个被创建出来的线程在Linux系统下可以看作是一个轻量级的进程(LWP),一旦一个轻量级进程被创建出来,他与父进程共用同一份代码和数据,为什么说是轻量级进程呢,要知道在Linux系统下,并没有描述线程的这一结构体,所以并没有真正意义上原创 2017-06-07 15:32:01 · 302 阅读 · 0 评论 -
vfork
vforkfork后父进程和子进程通过自己的地址空间和页表看到自己的物理地址上的代码和数据,而vfork子进程和父进程共享一份地址空间结合页表映射到同物理内存上如何证明#include #include #include #include #include #include #include int main(){ pid_t id = v原创 2017-05-30 15:40:19 · 396 阅读 · 0 评论 -
输入输出重定向
输出\入重定向和追加重定向原理什么是输出重定向,举个例子把hello world从键盘输入的数据输入到mylog中 把mylog中的内容输出到显示屏文件 这就是输出重定向 cat+回车同理输入重定向,是先将0号数组中的文件关闭,再打开一个文件,以后就从该文件读取数据 cat 现在我们看看这个代码运行结果原创 2017-05-24 22:27:25 · 2469 阅读 · 0 评论 -
文件描述符fd与FILE
FILE与文件描述符fdFILE与文件描述符fdFILE文件描述符FILEFILE结构体是stdio.h所包含的结构体之一,注意FILE是一个数据结构而不是磁盘上的任何一个文件 FILE在C中作为一个结构体存在结构如下:#ifndef _FILE_DEFINED struct _iobuf {原创 2017-05-15 19:26:01 · 764 阅读 · 0 评论 -
进程及task_struct
进程简述进程被操作系统管理 描述->task_struct(描述每一个进程) 组织(将每一个描述进程的结构体联系起来) 通过管理数据对各个进程进程管理进程简述task_stauct调度数据成员信号处理进程队列指针进程标识时间数据成员信号量数据成员进程上下文环境文件系统数据成员内存数据成员支持对称多处理器方式(SMP原创 2017-04-16 11:00:14 · 285 阅读 · 0 评论 -
GDB的简单使用
GDB初学什么是GDBGDB(GNU symbolic debugger)简单地说就是一个调试工具。主要应用在Linux/Unix平台上。如何使用GDB2.1:首先让你的.c或.cpp文件以debug形式生成(这里的test.c 以及mytest都是自己touch的) 怎样在linux下让程序以DEBUG形式发布gcc -o mytest te原创 2017-04-03 16:55:46 · 717 阅读 · 0 评论 -
半同步-半异步进程池实现 web 服务器
半同步/半异步进程池实现 web 服务器源代码 程序开始时创建一个监听套接字,该套接字被接下来创建的进程池中所有子进程所共享,这么做的目的是为了让父进程负责监听客户端连接,一旦有客户连接,父进程随即从进程池中选取一个子进程,通过管道( m_pipefd ) 向子进程发送一个 new_conn(它是一个整型,值为1),子进程会将该客户所对应的套接字添加至自己的关心事件中。for (原创 2018-02-01 12:52:45 · 383 阅读 · 0 评论