![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 59
斗鹰
沿心的方向坚持走下去。
展开
-
linux下的find指令
linux 下的find的指令非常强大,基本上可以支持各种方式的查找,因此它的选项也特别多,学起来也不是那么的容易,今天我简单的把自己知道的选项总结一下;首先我在自己的code目录下面建立五个文件,它们都不一样,以便一会能准确的查找,如图 1.按权限664方式查找,看结果 2.按文件名称查找,看结果 3.接下来我们按user来查找,看结果 4.接下来按字节大小查找,我们查找100原创 2017-03-31 18:00:34 · 228 阅读 · 0 评论 -
进程间通信----信号量
信号量的本质是一种数据操作锁或叫它计数器,它本身不具有数据交换的功能,而是通过控制其他通信资源(文件,外设)来实现进程间通信的。它本身也是一种临界资源,,能被多个进程同时看到与访问,但是为了访问的正确性,必须保证访问的元子性。 补充知识: (1)临界资源: 不同进程能够看到的一份公共的资源,且一次仅允许一个进程使用的资源称为临界资源。,比如两个进程都要访问硬盘,那么硬盘就是临界资源。原创 2017-06-07 19:45:02 · 499 阅读 · 0 评论 -
进程间通信----消息队列
一.消息队列概念消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为是有一个类型的,接收者进程接收的数据块可以有不同的类型值。我们可以发送消息来避免命名管道的同步和阻塞。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出的,消息队列与命名管道有一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的原创 2017-06-09 16:22:55 · 337 阅读 · 0 评论 -
进程间通信(IPC)---共享内存
我们知道每个进程都有一个自己的PCB和一个地址空间,每个进程间是相互独立的,无法相互看到对方的地址空间,因此就不能通信,但是为了能达到进程间通信,人们发明了许多方法,共享内存是其中之一。(一)共享内存的原理进程间通信的本质是使不同的进程可以看到同一份资源,这份资源称之为临界资源,那么这里的共享内存即是这份临界资源。所以,首先应该创建一段共享存储区。然后使其要访问这个共享存储区的每一个进程都要将该共享原创 2017-06-09 21:05:52 · 373 阅读 · 0 评论 -
linux多线程编程1
(一).线程概念1.线程是程序执行流的最小单元,是进程内部的执行分支,一个进程内有多个线程。 2.vfork创建子进程,在调用exec和exit(程序终止)之前,子进程会在父进程的地址空间内运行。 3.linux下没有描述线程的结构体,所以并没有真正意义的线程,进程有PCB(task_struct 结构体),而线程没有。但是在windows下有真正意义上的线程,有描述线程的结构体TCB。 4.原创 2017-06-10 21:51:41 · 290 阅读 · 0 评论 -
调研死锁知识
参考:http://blog.163.com/yanenshun@126/blog/static/128388169200982444858590/?fromdm&fromSearch&isFromSearchEngine=yes(一)死锁概念(1),背景知识 首先该明白什么叫同步与互斥以及什么是互斥锁? 同步: 按照特定顺序访问临界资源,在互斥基础上实现。 互斥:对临界资源的访问时串行式原创 2017-06-11 20:44:58 · 310 阅读 · 0 评论 -
调研端口
端口调研分类 1.简述端口 端口号是用来标识目的主机当中唯一的一个网络进程,Ip地址是用来标识Internet网上唯一的一台主机号,Ip地址+端口号等于套接字,套接字可以确定唯一的一个进程。 Tcp/ip协议中引入一种叫做“套接字”的应用程序软件,有这种技术,一台电脑就可以与任意一台具有套接字的电脑通信。 2端口的分类: 从性质上来分: (1)公认端口:0—1024,紧密绑定一些特定的服原创 2017-07-22 20:19:21 · 279 阅读 · 0 评论 -
TCP的三次握手和四次挥手
一.TCP数据报报头如下所示: 和UDP协议一样也有源端口号的目的端口号,通信的双方由Ip地址和端口号标识。 32位序号标识和32位确认序号标识:保证全双工 16位窗口大小: 4位首部长度的数值表示TCP协议头的长度,以4字节为单位,最小值为5,二进制序列为0101,最大值为15,二进制序列为1111,因此TCP协议头最短为4*5 = 20(不带任何选项);最长可以是4*15=60字节。(原创 2017-08-02 13:21:15 · 199 阅读 · 0 评论 -
TCP的7种定时器
我们知道TCP是面向 连接 的, 可靠 的, 流式 传输的协议, 在TCP的里面有7种定时器, 分别是:1.建立连接定时器(connection-establishment timer) 2.重传定时器(retransmission timer) 3.延迟应答定时器(delayed ACK timer) 4.坚持定时器(persist timer) 5.保活定时器(keepalive tim转载 2017-08-02 14:21:05 · 803 阅读 · 0 评论 -
Linux下的文件描述符
转载请说明出处:http://blog.csdn.net/cywosp/article/details/389652391. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统转载 2017-05-22 19:56:23 · 1164 阅读 · 0 评论 -
C语言中的FILE结构体
内存中的数据都是暂时的,当程序结束时,它们都将丢失。为了永久性的保存大量的数据,C语言提供了对文件的操作。1、文件和流C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开文件时,就建立了和文件的关系。在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。流提供了转载 2017-05-20 21:51:10 · 31038 阅读 · 2 评论 -
linux下的权限粘滞位
通常情况下用户只要对某个目录具备w写权限,便可以删除该目录下的任何文件,【注意: 只要目录有w权限,就可以删除该目录下的任何文件】 而不论文件的权限是什么。 现在我们举个例子看看 首先在超级用户下创建一个目录test,并其在test里面touch一个file的文件,如图 然后修改test权限,使其变为777 然后返回普通用户,,看能不能删除file 你会惊奇的发现竟然删除的。。原创 2017-03-31 20:42:22 · 252 阅读 · 0 评论 -
linux 下的进度条的实现
首先介绍下linux 下进度条实现的原理 第一点,利用行缓冲刷新,要知道这点,首先得知道 /n,和/r的区别;/n 表示回车换行【先将光标移动到下一行,然后将光标移动到当前行的开头】,/r表示回车【将当前光标移到当前行的开头】,还要明白计算机内存刷新方式有 无缓冲【从输入设备输入一个数据,不在缓冲区逗留,直接输出在输出设备上】,行缓冲【从输入设备输入一个数据,放在缓冲区中,当遇到换行符,则刷新在输原创 2017-04-16 19:16:38 · 259 阅读 · 0 评论 -
linux下的进程描述符task_struct
一,数据结构 进程控制块PCB,是进程存在和运行的唯一标志,在linux中用task_struct这个结构体来表示。这个结构体中有许多数据项,查看源代码时没必要理解全部数据项,只需要在以后使用时在理解struct task_struct{ ...}下面重点介绍几个基本的数据项:1.进程状态 task_struct中用长整形state表示进程的状态。volatile原创 2017-04-16 22:48:09 · 310 阅读 · 0 评论 -
linux下的access,modify,和change
首先让我们先创建一个code目录,然后touch一个file文件,然后stat一下, 你会发现出现了我所说的三个时间(红框框里面的),当然你现在不知道他们是干什么用的,那么接下来我们进入文件中在里面写一写代码,然后在stat,你会发现时间惊奇的改变了, 所以可以知道第一条结论> 1.vim会是三个时间都同步,记录下一改变文件的时间然后我改变文件属性,即权限,会发生什么变化呢; 你原创 2017-03-26 10:59:20 · 465 阅读 · 0 评论 -
Vim的配置
1.什么是vimvim是Linux下一种常用的编译器,但是和VS相比,它确实有点low了,但是呢,我们可以通过配置,把它变的和VS一样好用。下面就介绍一下简单的配置。2.vim的简单配置在root下,你可以在etc目录下找到一个vimrc文件,里面就写着vim的配置,如下图 我们配置就在当前用户下就好,在普通用户下输入命令 cd~/ 然后你可以看一下当前目录下有没有一个 .vimrc 文件,ll转载 2017-05-05 19:02:32 · 193 阅读 · 0 评论 -
僵尸进程和孤儿进程
一,基本概念 我们知道在linux/unix 中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程,子进程的结束和父进程的运行是一个异步过程,即父进程永远不知道子进程什么时候结束,当一个进程完成它的工作终止后,它的父进程需要调用wait()和waitpid()系统调用取得子进程的终止状态。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将原创 2017-05-18 20:21:56 · 761 阅读 · 0 评论 -
进程间通信----管道
一,进程间通讯原理每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程间交换数据,必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这个机制称为进程间通信(IPC) 二,进程间通信——管道(一),匿名管道匿名管道是一种最基本的IPC进制,由pipe函数创建:#include <unistd.h>原创 2017-05-30 17:05:38 · 887 阅读 · 0 评论 -
linux下的atexit()函数
很多时候我们需要在程序退出的时候做一些诸如释放资源的操作,但程序退出的方式有很多种,比如main()函数运行结束、在程序的某个地方用exit() 结束程序、用户通过Ctrl+C或Ctrl+break操作来终止程序等等,因此需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理。方法就 是用atexit()函数来注册程序正常终止时要被调用的函数。atexit()函数的参数是一个函数指针,函数指原创 2017-05-20 20:08:40 · 357 阅读 · 0 评论 -
linux查看C结构体定义
今天写程序时,用到了pthread_cond_timedwait 函数,其原型为:int pthread_cond_timedwait(pthread_cond_t *restrict cond , pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime); 最后一个参数是 timespec 结构体,可惜m转载 2018-01-06 13:50:44 · 1427 阅读 · 1 评论