(转载自:https://blog.csdn.net/lkkey80/article/details/16856063)众所周知,在相应进程的/proc/$pid/fd 目录下存放了此进程所有打开的fd。当然有些可能不是本进程自己打开的,如通过fork()从父进程继承而来的。本文着着重讲述socket有关的内容。当我们在fd目录下使用 ls -l 命令查看时,会看到诸如下面的内容: lr
1、命令介绍常用的命令为 iostat -xkx参数表示返回全部参数k参数表示返回的数据单位为kbDevice: rrqm/s wrqm/s r/s w/s rkB/s wkB/s
iostat源码共563行,应该算是Linux系统命令代码比较少的了。源代码中主要涉及到如下几个Linux的内核文件:1、/proc/diskstats——该文件是内核2.6以上的系统中的,记录了从Linux系统启动之后,所有磁盘的相关信息,该文件中每个参数代表的意义可以自行google或者baidu,或者见博客:/proc/diskstats参数含义。2、/proc/partitions——pa
VPS必备
编译安装了vim 却发现 insert模式下,按下方向键变成的 A B C D 。解决:echo "set nocp" >> ~/.vimrc source ~/.vimrc
(本文转载自 http://blog.sina.com.cn/s/blog_9a7260a60102vjje.html) I>卸载VIM7.2老版本:查看是否安装:[root@localhost ~]# rpm -qa| grep vimvim-minimal-7.2.411-1.8.el6.x86_64vim-common-7.2.411-1.8.el6.x86_64vim-enhance
配了几次了,但每次配都记不住,写个笔记给自己看
1、数组里全是大于0的正整数,用shell找出最大值、最小值、平均值(保留2位小数)2、进度条
1、` 和 $()的区别 反引号本身就对\进行了转义,保留了其本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。所以我们可以简单的想象成反引号中: \\ = \ $()中则不需要考虑\的问题,与我们平常使用的一样:\ = \题外话: 反引号是老的用法,$()是新的用法,不管是在学
基础知识UDP和TCP的区别:1、TCP是面向连接的,而UDP是非面向连接的,因此TCP更可靠2、UDP的server端的socket不需要监听3、二者的server端都需要绑定代码实现:Server端:/************************************************************************* > File Na
一、守护进程守护进程,也叫精灵进程(daemon) 它和普通后台进程的区别在于以下三点1、守护进程自成会话,而普通后台进程则不一定2、守护进程不受终端的控制3、守护进程就是后台进程,而后台进程不同于守护进程 用ps axj命令查看系统中的进程,TPGID一栏为 -1 的进程(这些进程没有控制终端)就是守护进程。 二、实现
1、生产者——消费者模型用到的函数:sem_init() 初始化sem_destroy() 销毁sem_wait() 申请、消费资源(申请不到的时候挂起)sem_post() 生产资源 单生产者——单消费者:/******************************************************
所谓死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 ”死锁“产生的原因: 1、系统资源不足 2、进程运行推进的顺序不合适
信号的产生方式:1、键盘输入 如 Ctrl+C 表示产生一个SIGINT信号 2、异常产生信号 如 程序执行到 2/0 这种情况、 管道的读段已经关闭而写端仍向管道中写入数据这种情况 等... 3、通过命令向指定进程发送信号 对信号的处理方式:1、忽略2、执行默认处理(通常为终止程序)3、执行自定义动作 (信号的捕捉) 举个例
消息队列 是进程间通信的一种方式,它不像管道那样是基于字节流,而是基于消息。也就是说,消息队列不一定是先进先出了。 这次我用消息队列实现一个简单的进程间通信程序,让两个进程server和client进行通信 (由于要准备学校的期末考试,先贴代码和运行结果,原理分析之后补上) 程序结构: Makefile: comm.h & co
这篇文章简单介绍一下操作系统中的管道,并主要解决以下两个问题:1、管道的内部实现2、管道的容量? 管道是操作系统中,不同进程之间进行通信的方式。根据通信的进程之间的关系,管道分为匿名管道和非匿名管道其中,匿名管道只能用于有“血缘关系”的进程之间进行通信,而命名管道则可以用于任意两进程的通信此外,管道是单向的,所以2个管道就可以实现进程之间的双向通信 管道
一、下面的代码是对fork的测试运行结果为:可以看出,所有进程的pid 为 10604 ~ 10611 (共 8 个 2 ^ 3) 修改循环条件,让循环执行5次,所有进程的pid 为 : 10637 ~ 10668 (共 32 个 2 ^ 5) 可以看出,循环执行n次,进程的数目为: 2 ^ n 个 而printf的次数
一、认识栈帧先来看一段神奇的代码: (windows下,代码如下)#include<stdio.h> #include<stdlib.h> #include<Windows.h> void fun() { printf("You Are Done\n"); Sleep(2000); pr
原文出处:http://blog.csdn.net/hongchangfirst/article/details/7075026 struct task_struct {//这个是进程的运行时状态,-1代表不可运行,0代表可运行,>0代表已停止。 volatile long state; /*flags是进程当前的状态标志,具体的如:0x00000002表示进程
操作系统中对进程的调度算法大体上可以分为三类:1、先来先服务算法2、优先级法3、时间片轮法接下来简要介绍一下这三类算法。 一、先来先服务算法(FCFS: First Come First Service) 原理: 这是最简单的一种调度算法,用到了队列的思想。每次调度都从进程就
接下来配置TagList。首先在这里下载:http://www.vim.org/scripts/script.php?script_id=273 我下载的是最新版,4.6下载完后,解压缩到~/.vim然后在自己的工作目录下打开或者新建一个vim(我的是 test.c)然后在底栏模式输入::helptags ~/.vim/doc输入这行命令后 应该会生成一个帮助标签现在在底栏模
首先,在下面的网站:http://ctags.sourceforge.net 下一个 Ctags5.6 (ctags-5.6.tar.gz)然后,cd到下载好的目录并解压$ tar -xzvf ctags-5.6.tar.gz解压好以后 cd到 ctags-5.6cd ctags-5.6然后编译并安装make //下一步要root权限了 make
( 《文件有三个“时间”》:http://zhweizhi.blog.51cto.com/10800691/1775447 )概述find命令是通过遍历硬盘的方式查找指定名称的文件,因此其效率相比whereis 等指令,要慢许多。下面介绍find命令的相关用法:命令格式为:find pathname [o
实例先拿实际操作举例。 下面的实例中,关注code.tgz即可(红色的)可以无视那个 code下面一张截图是我在 code 目录下,分别执行ls -l ls -lc ls -lu后的运行结果:可以看到,系统分别打印出了3个不同的时间。接下来改名,执行mv code.tgz code1.tgz ls -l ls -lc ls&n
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号