
linux
文章平均质量分 52
Hyacinth_Dy
这个作者很懒,什么都没留下…
展开
-
线程初体验
线程初体验线程的概念:线程是一个进程地址空间的一个控制流程,是调度的基本单位,由于同一进程的多个线程共享同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一 个全局变量,在各线程中都可以访问到。 各个线程共享的进程资源:文件描述符表每种信号的处理方式当前的工作目录用户id和组id 各个线程各自拥有的资源:线程原创 2017-03-24 16:29:44 · 420 阅读 · 1 评论 -
shell脚本实现希尔(shell)排序
采用shell脚本实现希尔排序原创 2017-07-31 19:28:22 · 809 阅读 · 0 评论 -
shell字符串截取方法
运算符截取 1.#和##截取字符串(删左边留右边) 2.% 和%% 号截取(删右边留左边) 3.cut命令截取原创 2017-07-08 17:10:05 · 638 阅读 · 0 评论 -
linux中crond服务与crontab用法详解
crond服务是一种守护进程,用来定期执行程序,安装完成系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作,可以通过crontab 命令添加或者编辑需要定时执行的任务。crond服务启动操作原创 2017-07-08 15:17:13 · 2450 阅读 · 0 评论 -
命令替换的两种方式$()和``
命令替换的含义 命令替换是指将命令的输出作为命令替换的位置的文本 命令替换的一般作用是抽取一个命令的输出, 然后使用=操作赋值到一个变量供以后使用。命令替换的两种方式 1 . ``(反引号,电脑键盘Esc下面的那个键) 2 . $()命令 $()和``两种命令替换的异同以及优缺点 ``方式 对于类似上述简单的命令来说与$()来说没有太大原创 2017-06-15 12:20:17 · 2812 阅读 · 0 评论 -
socket编程以及select、epoll、poll示例详解
socket编程socket这个词可以表示很多概念,在TCP/IP协议中“IP地址 + TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP + 端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么两个socket组成的socket pair就唯一标识一个连接。原创 2017-06-11 19:45:32 · 20988 阅读 · 10 评论 -
Shell脚本实现带颜色进度条
最近刚刚学习啦shell脚本的编程方法,就采用shell脚本实现了一个带颜色的进度条,下面将结果展示给大家。 程序结果 实现这个其实非常的简单,只需要了解一些基本的语法就可以了。进度条的实现就是循环加输出格式控制就可以实现了,这点大家看代码就可以理解,我在这里主要为大家讲解以下颜色是如何设置的,除了上述的颜色大家也可以配置自己喜欢的颜色。带颜色的输出格式 颜色相关命原创 2017-07-01 14:04:01 · 1083 阅读 · 0 评论 -
linux下vim中多行注释和删除多行注释
多行注释: a. 按下Ctrl + v,进入列模式; b. 在行首选择需要注释的行; c. 按下“I”,进入插入模式; d. 然后输入注释符(“//”、“#”等); e. 按下“Esc”键。删除多行注释: a. 按下Ctrl + v, 进入列模式; b. 选定要取消的注释符; c. 按下“x”或者“d”.原创 2017-06-09 17:29:54 · 1260 阅读 · 0 评论 -
Linux进程池与线程池以及线程池的简单实现
进程池是由服务器预先创建的一组子进程,这些子进程的数目在3-10个之间。httpd守护进程就是使用了包含7个子进程的进程池来实现并发的。线程池中的线程数量应该和CPU数量差不多进程池中的所有子进程都运行着相同的代码,并具有相同的属性,比如优先级,PGID等等。原创 2017-06-04 13:38:04 · 1183 阅读 · 0 评论 -
Linux中eval命令
eval命令会首先扫描命令进行所有的替换,然后在执行所有的命令,该命令适用于那些一次扫描无法实现其功能的变量,该命令对变量进行两次扫描,这些需要进行两次扫描的变量被称为复杂变量。原创 2017-06-16 09:47:49 · 763 阅读 · 0 评论 -
centos6.5vim基本配置
简单的vim配置:在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,那么我们可以在自己的工作目录下建立一个“.vimrc”文件将配置vim的命令写进去来配置我们的vim。下面是我自己配置的vim:原创 2017-02-17 20:02:40 · 1613 阅读 · 0 评论 -
Linux模拟实现sleep
工作原理 linux中的sleep函数能够让程序休眠一定的秒数,到时间后自动恢复运行。实现思路 设定睡眠的秒数 睡眠(挂起) 恢复运行实现机制 设定睡眠的秒数:采用alarm()函数设定需要睡眠的秒数,到时间后闹钟会发送SIGALRM信号给当前进程。但SIGALRM信号的默认操作是杀死进程,所以我们需要对SIGALRM信号进行自定义处理。 睡眠:pause()函数会让当前进程挂起,直原创 2017-04-27 15:01:35 · 408 阅读 · 0 评论 -
atexit注册函数
函数名: atexit头文件:#include功 能: 注册终止函数(即main执行结束后调用的函数)用 法: int atexit(void (*func)(void));注意:按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们 登原创 2017-02-19 19:12:31 · 945 阅读 · 0 评论 -
Linux进程组,作业,会话,作业控制详解
进程组 (1)每个进程除了有一个进程id之外还属于进程组,进程组是一个或者多个进程的集合,通常,他们与同一作业相关联,可以接收来自同一终端的各种信号。 (2)每个进程组有一个唯一的进程组id,每个进程组都可以有一个组长进程,进程组的组id就是组长进程的进程id,一般来说组长进程是第一个进程。 我们通过一个简单的例子来深入理解这些概念。 如图可以看到四个进程的pid分别为11602,1原创 2017-05-04 16:30:12 · 465 阅读 · 0 评论 -
TCP的四种定时器
TCP使用的四种定时器(Timer) 重传计时器(Retransmission Timer) 坚持计时器(Persistent Timer) 保活计时器(keeplive Timer) 时间等待计时器(Time_wait Timer)原创 2017-05-23 11:40:50 · 445 阅读 · 0 评论 -
如何写一个linux精灵进程
什么是精灵进程 精灵进程也称守护进程(Daemon):是运行在后台的一种特殊进程,它独立于控制终端并周期性的执行某种任务,或等待处理某些发生的事件。Linux大多数服务器就是用精灵进程实现的。原创 2017-05-11 13:46:03 · 556 阅读 · 0 评论 -
线程安全与可重入函数的区别
线程安全:一般来讲就是一个代码块被多个并发线程反复调用时会一直产生正确的结果。如何确保线程安全:确保线程安全 主要 考虑线程之间共享变量的安全 ,每个线程私有的内容包括 :线程id,errno变量,栈空间,寄存器,信号屏蔽字,调度 优先级。所以 属于同一进程的不同线程会共享全局区和堆,在对这些 共享变量进行访问时要保证线程安全需要采用加锁的方式,否则线程是不安全的会导致程序出错,甚至崩溃。可重入原创 2017-04-14 19:40:29 · 514 阅读 · 0 评论 -
死锁的四个必要条件
死锁产生的四个必要条件互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到的资源。原创 2017-04-11 19:54:03 · 119298 阅读 · 11 评论 -
消息队列实现从一个进程向另一个进程发送一个数据块的方法
首先是Comm.h的代码#include<stdio.h>#include<string.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#define SERVER_TYPE 1#define CLIE原创 2019-03-13 19:05:14 · 950 阅读 · 0 评论