Linux
centor
这个作者很懒,什么都没留下…
展开
-
find指令的学习和粘滞位
find命令在目录中搜索文件,并执行指定操作。有时候可能需要找出一个不知道保存在什么位置的文件,也可能在维护系统的过程中要找出具有某一特征的文件(例如修改时间、文件长度等)。这时可以利用 find 搜索整个文件系统。甚至网络系统上的文件和目录。find 是从制动指定位置进行遍历查找。适用于批量处理具有某一类型特征的文件。基本语法:find pathname -options [-pri...原创 2017-03-29 12:03:28 · 378 阅读 · 0 评论 -
信号屏蔽pending
信号在内核中的表示: 信号在传递过程中有三个状态:执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态称为信号未决(Pending)。进程也可以选择阻塞(Block)某个信号,被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达动作。阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选一种处理动作。信号在内核中的表示如下图所示:原创 2017-11-03 16:16:25 · 286 阅读 · 0 评论 -
vim常见命令
一、移动光标左移h、右移l、下移j、上移k 向下翻页ctrl + f,向上翻页ctrl + b 向下翻半页ctrl + d,向上翻半页ctrl + u 移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^ 移动光标到下一个句子 ),移动光标到上一个句子( 移动到段首{,移动到段尾} 移动到下一个词w,移动到上一个词b 移动到文档开始gg,移动到文档结束G 移动到匹配的{}.转载 2017-10-12 22:26:35 · 233 阅读 · 0 评论 -
gdb调试多线程与多进程
gdb基本命令 命令 作用 list或l + 行号 显示从行号开始的源代码 list或l + 函数名 列出某个函数的源代码 run或r 运行程序 step或s 进入函数调用 breaktrace或bt 查看各级函数调用及参数 info或i locals查看当前栈帧局部变量的值 info break 查看断点信息 finish 执行原创 2017-07-08 16:12:40 · 333 阅读 · 0 评论 -
管道(pipe、mkfifo)
管道概念 Linux下一切皆文件,我们可以创建一个管道文件进行通信,实际上是调用pipe函数在内核中开辟一块缓冲区(称为管道)用于通信,使不同的进程看到同一份资源,管道是一种最基本的IPC机制,由pipe函数创建 。下面我们将看到两种管道-匿名管道及命名管道的实现匿名管道通信的实现 它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读端,原创 2017-08-05 23:06:58 · 3885 阅读 · 0 评论 -
mysleep的实现
用信号机制实现sleep,我们称之为mysleep()在代码实现mysleep()之前,先来了解一下如下几个函数: #include unsigned int alarm(unsigned int seconds); alarm函数可以设定一个闹钟,也就是告诉内核在seconds秒之后给当前进程发SIGALRM信号,该信号的默认处理动作是终止当前进程。这个函数的返回值原创 2017-07-18 22:20:06 · 930 阅读 · 0 评论 -
网络基础(CRC、NAT、URG、PSH、tcp定时器)
CRC循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(原创 2017-07-20 23:04:06 · 564 阅读 · 0 评论 -
基于单链表和环形队列的生产消费模型
消费者模型消费者模型由消费者,生产者以及交易场所构成;其中消费者与生产者的关系有以下几种:消费者—消费者:互斥消费者—生产者:互斥、同步生产者—生产者:互斥基于单链表的消费者模型互斥关系的由互斥锁来实现:int pthread_mutex_lock(pthread_mutex_t *mutex);//上锁int pthread_mutex_trylock(pthread_mutex_t *原创 2017-06-13 13:59:08 · 1122 阅读 · 0 评论 -
线程
Linux中线程与进程的区别 在Linux中,进程是一个正在执行的程序,是程序的一个实例,它能分配处理器并由处理器执行的实体。一个除处理器其他元素都具备的程序也叫做进程,简单来说就是一个动态的执行过程,线程,严格地讲在Linux中没有线程,而是用轻量级进程来模拟线程联系:进程可以看作是进程的一个执行分支进程为线程提供环境由轻量级的进程模拟得到的线程成为基本调度单位原创 2017-06-09 22:40:53 · 234 阅读 · 0 评论 -
线程安全与可重入函数
线程安全及其避免方式线程安全:当一个函数被多个并发进程反复调用时,它会一直产生正确的结果,称其为线程安全的。若一个函数不是线程安全的,就称其为线程不安全的。 线程安全就是说多线程访问同一代码,不会产生不确定的结果。线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可使用,线程安全不会出现数据不一致或者数原创 2017-07-08 22:57:01 · 360 阅读 · 0 评论 -
线程死锁
死锁概念: 指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象称为死锁。产生死锁的条件 互原创 2017-06-08 16:59:59 · 278 阅读 · 0 评论 -
孤儿进程与僵死进程
基本概念 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程,也称僵尸进程。Linux子原创 2017-04-23 16:38:54 · 382 阅读 · 0 评论 -
FILE结构体(文件描述符及缓冲区)
FILE结构体C语言的stdio.h头文件中,定义了用于文件操作的结构体FILE。这样,我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作。可以在stdio.h(位于visual studio安装目录下的include文件夹下)头文件中查看FILE结构体的定义,如下:#ifndef _FILE_DEFINED struct _iobuf {原创 2017-05-13 21:51:25 · 2464 阅读 · 0 评论 -
task_stuct 进程
进程是一个正在执行的程序,是程序的一个实例,它能分配处理器并由处理器执行的实体。一个除处理器其他元素都具备的程序也叫做进程,简单来说就是一个动态的执行过程。PCB就是一个名字叫做task_struct的结构体,我们叫他”进程描述符”。它里面有进程执行的所有信息,所以CPU对task_struct进行管理就相当于在对进程进行管理。PCB叫做进程控制块,它用来维护进程相关的信息,每原创 2017-04-14 13:02:26 · 489 阅读 · 0 评论 -
linux目录权限及时间修改
一. chgrp :改变档案所属群组 chown :改变档案拥有者 chmod :改变档案的权限, SUID, SGID, SBIT等等首先,我们了解一下档案的文件名不相关属性。如下图所示:1.档案类型权限中 rwxr-xr-x 表示Linux档案的基本权限的read/write/execute权限。修改方法数字类型改变档案权限:我们可以使用数字来代表原创 2017-03-24 10:13:40 · 743 阅读 · 0 评论 -
管道(pipe)
管道概念 Linux下一切皆文件,我们可以创建一个管道文件进行通信,实际上是调用pipe函数在内核中开辟一块缓冲区(称为管道)用于通信,使不同的进程看到同一份资源,管道是一种最基本的IPC机制,由pipe函数创建 。下面我们将看到两种管道-匿名管道及命名管道的实现匿名管道通信的实现 它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0...原创 2018-04-18 10:28:09 · 566 阅读 · 0 评论