Linux
文章平均质量分 52
LPBlog
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux 进度条原理,缓冲区,回车换行
要了解进度条原理首先要知道什么是缓冲区和回车换行?缓冲区:利用存储区缓解数据到达速度与离去速度不一致而采用的技术称为缓冲,此时同一数据只包含一个拷贝。例如:操作系统以缓冲方式实现设备的输入和输出操作主要是缓解处理机与设备之间速度不匹配的矛盾,从而提高资源利用律和系统效率。在写进度条的时候,并不会马上打印,而是存在buffer(缓冲区)里,这是想要让强制刷出buffer里的数据,原创 2017-02-17 12:09:01 · 476 阅读 · 0 评论 -
Linux 可重入函数与线程安全
一、 可重入函数简单来说,就是可以被中断的函数。当函数正在运行时,被系统切出去,执行其他线程,当系统再一次切回这个函数时,函数状态,上下文等都没有改变,即这个函数是可重入函数,反之则不是。满足可重入函数的条件: 1、不使用全局变量或静态变量; 2、不使用用malloc或者new开辟出的空间; 3、不调用不可重入函数; 4、不返回静态或全局数据,所有数据都有函数的调用者提供; 5、使用本地数原创 2017-04-24 20:55:16 · 383 阅读 · 0 评论 -
Linux CRC校验码
1、CRC简介:CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。crc校验原理:利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(C原创 2017-05-15 23:19:53 · 963 阅读 · 0 评论 -
Linux tcp_socket实例
一、利用tcp协议、socket模拟实现网络通信 网络中不同主机间的通信,实质上是网络中两个唯一的进程间通信,而IP地址加端口号可以表示网络中唯一的一个进程,即socket。tcp协议则可以实现全双工通信,同时接收数据。这次IP可以使用ifconfig查看本机IP为10.100.32.52,端口使用8080端口。 二、代码实现 1、创建源文件并编写Makefile原创 2017-05-31 23:48:47 · 489 阅读 · 0 评论 -
Linux 命令代换反引号和$()
一、“和$( ) 这两种代换都是将其内部的命令执行得到的结果代替原命令,执行下一步。 但两者在使用上还是有细微区别的: 我们用转义字符 \ 来测试 从上面两图中看到两点: 1.“中的\没有对$进行转义,取到了HOSTNAME的内容2.而$()中的\则实现转义,并没有有取到HOSTNAME内容,而是当成了一个字符串而这两图的结果正好与上面相反,由此得出两个结论: 1.“中 : \原创 2017-06-28 17:25:36 · 475 阅读 · 0 评论 -
linux shell eval命令
本文将会讲解一些linux中命令的使用与技巧希望对新手给予帮助一 e v a l命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时被称为复杂变量。不过这些变量本身并不复杂。e v a l命令也可以用于回显简单变量,不一定是复杂变量。1 eval命令也可以用于回显简单变量,不一定是复杂转载 2017-06-28 17:28:30 · 407 阅读 · 0 评论 -
linux 多路转接之select
一、 select函数 1.定义 select:该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。 2.作用 (1)系统提供select函数来实现多路复用输入/输出模型。 (2)select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。 3.接口参数 FD_CLR(inr fd,fd_set* set);用来清除描述原创 2017-06-09 16:00:56 · 354 阅读 · 0 评论 -
Linux 多路转接之epoll
一、epoll 作为多路转接中最晚出现的、也是性能最好的多路I/O就绪通知方法,epoll 继承了select和poll的优点,并且克服了select的描述符数量上限和poll的线性扫描的缺点。其实现机制是通过两个数据结构,红黑树保存所有的描述符,就绪队列则只保存已经就绪的描述符。二、接口 1. int epoll_create(int size)创建⼀个epoll的句柄。⾃从linux2.6原创 2017-06-11 18:04:12 · 324 阅读 · 0 评论 -
linux 进度条的脚本实现
一、背景 在学习了脚本符号和语法后,脚本就是一系列命令和变量的集合,其中的变量可以是本地变量,也可以是全局变量。基于此,可以写一个小的脚本出来,比如进度条 二、代码 其中使pintf打印出有颜色的、或者闪烁的进度条的相关参数如下: #define NONE “\033[m” #define RED “\原创 2017-07-03 22:25:12 · 693 阅读 · 0 评论 -
linux mysleep实现
#include #include #include void handler(void* avg){ //自定义处理动作:什么也不做!}int my_sleep(int timeout){ sigset_t set; sigemptyset(&set); struct sigaction act ,oact;//创建两原创 2017-05-03 13:09:53 · 389 阅读 · 0 评论 -
Linux 生产者、消费者之环形队列信号量
一、环形队列实现生产者与消费者的互斥与同步用sem_wait()、sem_post()实现二者的互斥与同步二、接口sem_tsem_init()sem_wait()sem_post()sem_destroy()三、代码实现#include <stdio.h>#include <semaphore.h>#include <pthread.h>#include <unistd.h>#de原创 2017-04-19 12:33:49 · 732 阅读 · 1 评论 -
Linux 消息队列的实现
一、创建头文件、源文件、发送、接收程序并编写Makefile 编写Makefile 二、编写头文件和源程序 1.头文件 2. 源程序 三、接收、发送程序 1.server.c 先收后发 2.client.c 先发后收 四、实现效果 1.分别运行server、client通过消息队列实现进程间通信来模拟聊天 client先发消息 2.root权限下监控原创 2017-03-22 13:16:03 · 1142 阅读 · 0 评论 -
linux PCB task_struct结构体
task_struct结构描述 1. 进程状态(State)进程执行时,它会根据具体情况改变状态 。进程状态是调度和对换的依据。Linux中的进程主要有如下状态,如表4.1所示。 内核表示含义TASK_RUNNING可运行TASK_INTERRUPTIBLE可中断的等待状态转载 2017-02-17 23:19:13 · 420 阅读 · 0 评论 -
Linux 进程调度算法
linux内核的三种主要调度策略:1,SCHED_OTHER分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值。分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到转载 2017-02-19 11:01:42 · 435 阅读 · 0 评论 -
Linux atexit函数回调顺序,文件权限
1.atexit回调函数atexit函数它的作用是在它所在的程序结束后,回调在其内部注册的函数,但它的回调顺序有是怎样的呢?我先注册了三个由此可见,它的回调顺序和栈类似,先注册后回调有些人说atexit的注册函数有限制(一般为32个),我在Linux环境下试试在Linux centos6.5 的环境下atexit中的注册函数是没有限制2.原创 2017-02-19 22:18:52 · 408 阅读 · 0 评论 -
Linux file结构体
Linux--struct file结构体struct file(file结构体): struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建转载 2017-02-20 23:31:21 · 1212 阅读 · 0 评论 -
Linux vim配置及常见错误
一、vim配置1.配置文件的位置首先cd ~进入工作目录,然后ls -al看~/目录下是否存在.vim目录和.vimrc文件,没有的话,自行创建2.安装插件: TagList(高效浏览源码)和插件: WinManager(文件浏览器和窗口管理器)插件:Taglist下载地址http://www.vim.org/scripts/script.php?script_id原创 2017-02-16 00:48:33 · 3937 阅读 · 0 评论 -
Linux 互斥锁的实现
一、互斥锁的作用 线程可以在自己的栈空间内使用自己内部的变量,当线程想使用一个在堆上开辟的全局变量时,其他线程也是可以看到这个全局变量,为了保护这个临界区,引入了互斥锁(mutex),实现线程的互斥与同步。 二、互斥锁的实现 1.不引入互斥锁 用两个线程来对一个全局变量实现累加5000次,累加时多次使用赋值表达式来使两个线程的上下文混乱,本来的结果应该为10000,这里只有5000上原创 2017-03-29 17:22:29 · 889 阅读 · 0 评论 -
Linux 管道pipe
一、何为管道?管道是一种最基本的IPC机制,由pipe函数创建:#include int pipe(int filedes[2]);调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端(很好记,就像0是标准输出1是标原创 2017-03-08 23:26:47 · 492 阅读 · 0 评论 -
linux 匿名、命名管道的实现
一、匿名管道 匿名管道根据父子进程共享代码,父进程创建一个管道文件,并有两个文件描述符指向管道文件,子进程也有两个文件描述符指向管道文件。利用文件描述符,一端关闭读,一端关闭写,来实现通信。#include <stdio.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <sys/wait.h>i原创 2017-03-14 21:45:52 · 605 阅读 · 0 评论 -
linux tar常见命令详解
在使用Linux解压和打包文件时会常用到下面两个命令解压:tar -zxvf 文件名 路径打包:tar -zcvf 文件名 路径我们常常会对其中的命令参数产生疑惑,所以对这些参数的作用进行了整理-z:打包后用gzip压缩,生成.tar.gz后缀的文件-j:打包后用zip2压缩,生成.tar.bz2后缀的文件-v:压缩的过程中显示文件;-f:使用文件名,注意(在f后要立即原创 2017-08-31 21:12:34 · 639 阅读 · 0 评论
分享